1

希望这个问题有一个简单的解决方案。

我需要一次将一个文件上传到我的服务器,所以我有一个脚本,它可以通过每个文件输入字段的 iframe 排队上传文件。

现在,我有一个工作脚本,可以循环并单独上传每个文件,选择:

<input type="file" name="file" />
<input type="file" name="file" />
<input type="file" name="file" />

并像这样循环:

$('input[type="file"]').each(function(){

我的问题是,我怎样才能改变.each来使用这个,只有一个文件选择器:

<input type="file" name="file" mulitple/>

$(???).each(function(){

我努力了

fileInput = document.getElementById("multiFileChooser");
$(fileInput.files).each(function(){

但是该文件未发送,也不存在于请求的有效负载中。

编辑2:


固定和工作解决方案:

(function($){$(document).ready(function(){
    $('input[type="submit"]').click(function(){         //on button press
        for(var ii = 0; ii < $('#multiChoose').get(0).files.length; ii++){
            sendFile($('#multiChoose').get(0).files[ii]);
            //wait until upload complete to start next one
        }
    }); 
})})(jQuery); 

function sendFile(file) {
        var uri = "upload.php";
        var xhr = new XMLHttpRequest();
        var fd = new FormData();

        xhr.open("POST", uri, true);
        xhr.onreadystatechange = function() {
            //queue next file
        };
        fd.append('file', file);

        xhr.send(fd);
    }
4

0 回答 0