如何使用jquery或JavaScript在一次浏览中上传多个文件

时间:2011-11-15 13:45:04

标签: javascript jquery html

我正在开发一个Web应用程序,我在其中为多个文件创建了一个页面 上传一次浏览而不是一次上传一个文件。

用户可以在点击浏览时选择多个文件。

如果某人有解决方案,请欢迎

谢谢!

5 个答案:

答案 0 :(得分:8)

对于替代解决方案,您可以使用HTML5多重上传,

<强> HTML

为您的输入文件设置属性多个,请查看此链接https://developer.mozilla.org/en-US/docs/Web/API/Input.multiple

<form id="form-upload">
    <input type="file" name="upload" id="upload" multiple>
</form>

<强> JS

使用juery上传文件,您可以使用表单数据:https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects

 $('#upload').bind("change", function(){
    var formData = new FormData($("#form-upload")[0]);
    //loop for add $_FILES["upload"+i] to formData
    for (var i = 0, len = document.getElementById('upload').files.length; i < len; i++) {
        formData.append("upload"+(i+1), document.getElementById('upload').files[i]);
    }

    //send formData to server-side
    $.ajax({
        url : "process_upload.php",
        type : 'post',
        data : formData,
        dataType : 'json',
        async : true,
        processData: false,  // tell jQuery not to process the data
        contentType: false,   // tell jQuery not to set contentType
        error : function(request){
            console.log(request.responseText);
        },
        success : function(json){
            //place your code here
        }
    }); 
});  

服务器-SIDE(例如:PHP)

//just print $_FILES
print_r($_FILES);

答案 1 :(得分:3)

Uploadify是一个非常好的文件上传JQuery插件。

它也很容易使用。来自文档:

$(document).ready(function() {
  $('#file_upload').uploadify({
    'uploader'  : '/uploadify/uploadify.swf',
    'script'    : '/uploadify/uploadify.php',
    'cancelImg' : '/uploadify/cancel.png',
    'folder'    : '/uploads',
    'auto'      : true
  });
});

然后你需要的所有内容是:

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

显然也包括Uploadify脚本。

答案 2 :(得分:3)

之前我使用过jQuery Uploadify,在他们的论坛上也有很多支持!

http://www.uploadify.com/

答案 3 :(得分:0)

您可以使用Jquery Uploadify

等插件

答案 4 :(得分:0)

您可以使用JQuery上传多个文件,请参阅此uploadify