2017-08-29 13 views
0

私はアップロードフォームを作成しており、これをjQueryで行うことを選択しました。ファイルはアップロードされますが、目的のフォルダにはアップロードされないため、アップロードフォームからプロセスに正しいデータを解析しません。jQuery submit form and 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); 
} 

ファイルは、メディア/画像にアップロードされて/と$ galleryNameが設定されていない理由を見ることができませんか?

+0

'$ギャラリー - > folder'と交換して、有効な値を持っていますか? –

+0

はい、私はここに提供されたコードの上にある値を出力しました。したがって、オブジェクト$ gallery->フォルダに実際の値があります。 – Kingfox

+2

uploadFile()は何ですか?いくつかのjqueryプラグイン? "galleryName"はその関数によって認識された値ではなく、サーバーに送信されない可能性があります。おそらく、別のキー名を使用してカスタムデータを追加する必要があります。 –

答えて

1

スクリプトに渡すパラメータが正しくないようです。あなたは使用されている正確なjQueryプラグインを指定していないので、以下の例はうまくいかないかもしれませんが、もしそうなら、プラグインのドキュメントで何を探すべきかを示唆する必要があります。

このコードを実行するときに、ライン

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

や線

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

ありがとう!これはトリックでした:)誰かが私が使用することを不思議に思っていた場合:http://hayageek.com/jquery-multiple-file-upload/ – Kingfox