2017-08-29 2 views
0

Ich mache ein Upload-Formular und habe gewählt, dies mit jQuery zu tun. Die Datei wird hochgeladen, aber nicht in den gewünschten Ordner. Daher analysiere ich die Daten nicht korrekt vom Upload-Formular zum Prozess.jQuery Formular einreichen und PHP

upload.php

<script> 
$(document).ready(function() 
{ 

var settings = { 
    url: "upload_process.php", 
    method: "POST", 
    allowedTypes:"jpg,jpeg,png", 
    fileName: "myfile", 
    galleryName: "<?php echo $gallery->folder; ?>", 
    multiple: true, 
    onSuccess:function(files,data,xhr) 
    { 
     $("#status").html("<font color='green'>Upload is success</font>"); 
    }, 
    onError: function(files,status,errMsg) 
    {  
     $("#status").html("<font color='red'>Upload is Failed</font>"); 
    } 
} 

$("#mulitplefileuploader").uploadFile(settings); 

}); 
</script> 

upload_process.php

$galleryName = $_POST["galleryName"]; 
$output_dir = "media/images/".$galleryName."/"; 

if(isset($_FILES["myfile"])) { 
    $ret = array(); 
    $error = $_FILES["myfile"]["error"]; 
    { 
     /* Single File */ 
     if(!is_array($_FILES["myfile"]['name'])) { 
      $fileName = $_FILES["myfile"]["name"]; 
      move_uploaded_file($_FILES["myfile"]["tmp_name"], $output_dir . $_FILES["myfile"]["name"]); 
      $ret[$fileName] = $output_dir.$fileName; 
     /* Multiple files */  
     } else { 
      $fileCount = count($_FILES["myfile"]['name']); 
      for($i=0; $i < $fileCount; $i++) { 
       $fileName = $_FILES["myfile"]["name"][$i]; 
       $ret[$fileName] = $output_dir.$fileName; 
       move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName); 
      } 
     } 
    } 
    echo json_encode($ret); 
} 

Die Datei zu Medien/Bilder hochgeladen/und kann nicht sehen, warum die $ Galleryname nicht gesetzt ist?

+0

'$ Galerie-> folder' hat einen gültigen Wert, wenn Sie diesen Code ausführen? –

+0

Ja, ich habe hier den Wert über dem angegebenen Code ausgedruckt, also gibt es einen tatsächlichen Wert im Objekt $ gallery-> Ordner. – Kingfox

+2

Was ist uploadFile()? einige jquery plugin? möglicherweise ist "galleryName" kein von dieser Funktion erkannter Wert und wird nicht an den Server gesendet. Meine Vermutung, wenn es ein Plugin ist, müssen Sie wahrscheinlich einen anderen Schlüsselnamen verwenden, um benutzerdefinierte Daten hinzuzufügen. –

Antwort

1

Der Parameter, der an das Skript übergeben wird, scheint nicht richtig zu sein. Sie haben nicht das genaue jQuery-Plugin angegeben, das verwendet wird. Das unten stehende Beispiel funktioniert möglicherweise nicht, sollte Ihnen aber einen Hinweis geben, worauf Sie in der Plugin-Dokumentation achten sollten

Bitte entfernen Sie die

Linie
galleryName: "<?php echo $gallery->folder; ?>", 

Und mit Linien ersetzen

enctype: "multipart/form-data", // Upload Form enctype. 
formData: { galleryName: "<?php echo $gallery->folder; ?>" }, 
+0

danke! Das hat den Trick gemacht :) wenn jemand sich gefragt hat, benutze ich: http://hayageek.com/jquery-multiple-file-upload/ – Kingfox