从blueimp文件上传器获取所有上传的文件

时间:2011-11-10 16:34:43

标签: jquery file file-upload upload blueimp

我使用blueimp file uploader将文件上传到我的网站空间。 如何获取列表中的所有文件及其状态?

我有一个单独的按钮,它位于#fileupload div之外,并希望获得一个数组或类似的内容,包含已上传的所有文件。

我是否要遍历html代码并解析文件名和状态?我无法相信,但我也找不到能够将这些信息返回给我的函数。

5 个答案:

答案 0 :(得分:2)

提供了成功上传的回调:

var arrNames = new Array();

//File uploader
$('#fileupload').fileupload().bind('fileuploaddone', 
    function (e, data) {
       //Add names
       arrNames[arrNames.length + 1] = data.result.files[0].name;
    }
);

arrNames保存上传文件的名称

答案 1 :(得分:0)

正如我在我的问题中提到的,我通过遍历列表中的所有元素来解决它,寻找删除按钮并从删除按钮的URL中提取文件名。

var files = new Array();
$("#fileupload td.delete button[data-type='DELETE']").each(function() {
    //get the basename of the url: http://abc/def/file.txt --> file.txt
    var name = $(this).attr("data-url").replace(/\\/g,'/').replace( /.*\//, '');
    files.push(name);
});

其他人是否有更好的解决方案?

答案 2 :(得分:0)

(...)    downloadTemplateId:null,    downloadTemplate:function(o){    }    (...)

您可以设置downloadTemplate功能,并在此处执行下载文件所需的一切。 o.files包含来自服务器的响应。

答案 3 :(得分:0)

文件中的

:script.js

添加代码:

getFiles__Name(data.files[0].name);

下线:

add: function (e, data) {

并在您的页面中添加:

var files=new Array();
function getFiles__Name(name){
    files.push(name);
}

其中files将包含所有文件的名称。 在我看来,这也不是最好的解决方案。

答案 4 :(得分:0)

我能够通过获取FabriGad Ahmed的答案并调整它来获取已经上传的一系列文件。

在我看来,我添加了以下脚本:

var img_files=[];
function getFiles__Name(name){
img_files.push(name);
}

在jquery.fileupload-ui.js中,我将以下内容添加到完成函数中:

//get the names of the already uploaded files
if (files){
$.each(files, function( index ) {
getFiles__Name( files[index].name );
});
}

这给了我一系列成功上传的文件。再说一次,如果有更好的方法,我很想知道。