使用Ajax调用将多个文件上传到服务器

时间:2018-03-21 22:07:22

标签: jquery file-upload

我有一个关于使用Servlet和Ajax调用将多个文件上传到服务器的问题。在互联网上我的问题也有类似的问题,但我无法解决我的问题。如果问题很简单或非常明显,我提前道歉。 我在表单HTML标记中有两个输入文件。用户可以使用文件系统浏览文件,然后点击按钮上传它们。 这是HTML代码

<form id="uploadFile">
        <input id="file1" class="files" type="file" name="file"></input>
        <input id="file2" class="files" type="file" ></input>
        <input id="processData" class="btn btn-primary" type="submit" name="submit" value="Process Data Sources" />
</form>

这是我的js代码

  //form Submit
      $("form").submit(function(evt){    
         evt.preventDefault();
         var formData = new FormData($(this)[0]);// I guess this value has to change to provide me with information of two files, but I am not sure how this can be done. 
         $.ajax({
           url: 'UploadServlet',
           type: 'POST',
           data: formData,
           async: true,
           cache: false,
           contentType: false,
           enctype: 'multipart/form-data',
           processData: false,
           success: function (response) {
             alert(response);
             console.log(response);
           }
       });
       return false;
     });

ajax代码此刻上传了一个文件,但我想上传两个使用2个输入文件选择的文件。我不知道怎么做。

我从这里读到的猜测是,我需要在submit函数中修改formData变量。 如果有人能给我提示,我真的很感激

1 个答案:

答案 0 :(得分:-1)

您的一个文件输入缺少名称属性

<form id="uploadFile">
        <input id="file1" class="files" type="file" name="file"> 
        <input id="file2" class="files" type="file" name="anotherfile"> 
        <input id="processData" class="btn btn-primary" type="submit" name="submit" value="Process Data Sources" />
</form>