2017-02-28 2 views
0

ajaxFormプラグインを使用して複数のファイルをアップロードする方法を理解するために、最後の数日を費やしました。私はいくつかの例を見つけたにもかかわらず、彼らはそれほど助けにならないか、私はhavaがそのように動作するように管理された単一のファイルアップロードを表示していますが、複数のファイルではありません。私はそのすべてのだと思う複数のファイルアップロードを含むajaxFormサブミット

if(isset($_FILES["FileInput"])){ 
    $UploadDirectory = $base_url . '/subSystems/drivers/driverLoads/fetchDrivers/personnelUploads/'; 

for($i = 0; $i < count($_FILES["FileInput"]['name']);$i++){ 
//check if this is an ajax request 
    if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){ 
     die(); 
    } 


//Is file size is less than allowed size. 
    if($_FILES["FileInput"]["size"][$i] > 5242880) { 
    die("File size is too big!"); 
    } 

//allowed file type Server side check 
switch(strtolower($_FILES['FileInput']['type'][$i])) 
    { 
     //allowed file types 

     //disabled till further notice 
     case 'image/png': 
     case 'image/gif': 
     case 'image/jpeg': 
     case 'image/pjpeg': 
     case 'text/plain': 
     case 'text/html': //html file 

     case 'application/x-zip-compressed': 
     case 'application/pdf': 
     case 'application/msword': 
     case 'application/vnd.ms-excel': 
     case 'video/mp4': 
      break; 
     default: 
      die('Unsupported File!'); //output error 
} 

    if(move_uploaded_file($_FILES['FileInput']['tmp_name'][$i], $UploadDirectory.$_FILES['FileInput']['name'][$i])){ 
     die('Success! File Uploaded.'); 
    }else{ 
     die('Error uploading File!'); 
    } 

    } 

}else{ 
    $error = codeToMessage($_FILES["FileInput"]["error"][$i]); 
    die('Something wrong with upload! Is "upload_max_filesize" set correctly?' . $error); 
} 

$(document).ready(function() { 
$('#submit-btn').click(function(e) { 
     e.preventDefault(); 
     $('#uploadForm').ajaxForm({ 
      target: '#output', // target element(s) to be updated with server response 
      beforeSubmit: beforeSubmit, // before submission callback function 
      success:  afterSuccess, // after submission callback 
      uploadProgress: OnProgress, //check on the upload progress 
      resetForm: true,  // reset the form if upload is success 
      data:{driverid:driverid} //send the driverid as well 
     }).submit();    
    }); 

とPHPコード:ここで

はhtmlコード

<div id="upload-wrapper"> 
<div align="center"> 
<form action="driverLoads/fetchDrivers/personnelUploads/processupload.php" method="post" enctype="multipart/form-data" id="uploadForm"> 
    <input name="FileInput[]" id="FileInput" type="file" multiple/> 
    <input type="submit" id="submit-btn" value="Upload" /> 
    <img src="driverLoads/fetchDrivers/personnelUploads/images/ajax-loader.gif" id="loading-img" style="display:none;" alt="Please Wait"/> 
</form> 
<div id="progressbox" ><div id="progressbar"></div ><div id="statustxt">0%</div></div> 
<div id="output"></div> 

とJavaScriptのコードですr問題の理解に役立つコード。私は1つのファイルをアップロードするときも、コードは正常に動作します。私がアップロードするとコードはうまくいきますが、3つのファイルを引数にして、最初のものだけをアップロードするとしましょう。

ありがとうございます。

if(move_uploaded_file($_FILES['FileInput']['tmp_name'][$i], $UploadDirectory.$_FILES['FileInput']['name'][$i])){ 
     die('Success! File Uploaded.'); 

を次に行削除しよう::という行上のPHPコードで

答えて

1

(!またはそれをコメントアウト)

die('Success! File Uploaded.'); 

それは動作しますか?

関連する問題