2017-02-28 17:16 阅读 195


I spent the last couple of days trying to figure how to upload multiple files with ajaxForm plugin without any success. Even though I have found some examples on the entire they are either not much help or they are showing single file uploads which I hava managed to make it work as such, but not with multiple files.

Here is the html code

<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"/>
 <div id="progressbox" ><div id="progressbar"></div ><div id="statustxt">0%</div></div>
 <div id="output"></div>

and the javascript code:

$(document).ready(function() { 
 $('#submit-btn').click(function(e) { 
            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

and the php code:

   $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'])){

//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
        //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/':
        case 'video/mp4':
            die('Unsupported File!'); //output error

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


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

I think its is all the relevant code for the question to be understood. Again the code works fine when I upload one file. Please note that the code also works fine if I upload, let's say for the sake of arguement 3 files, but if will upload only the first one.If anyone has more experience on this please help because I cant seem to spot the error.

Thank you in advance.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    doue9730 doue9730 2017-02-28 17:45

    In your php code on the line that says:

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

    Then try to remove the line:

    die('Success! File Uploaded.');

    (or comment it out!)

    Does it work?

    点赞 评论 复制链接分享