我使用blueimp 文件上传器将文件上传到我的网站空间。如何获取列表中的所有文件及其状态?
我有一个单独的按钮,它位于#fileupload div 之外,并且想要获取一个包含所有已上传文件的数组或类似的东西。
我是否需要遍历 html 代码并解析文件名和状态?我不敢相信,但我也找不到返回此信息的函数。
我使用blueimp 文件上传器将文件上传到我的网站空间。如何获取列表中的所有文件及其状态?
我有一个单独的按钮,它位于#fileupload div 之外,并且想要获取一个包含所有已上传文件的数组或类似的东西。
我是否需要遍历 html 代码并解析文件名和状态?我不敢相信,但我也找不到返回此信息的函数。
提供了上传成功的回调:
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 保存上传文件的名称
正如我在问题中提到的那样,我通过迭代列表中的所有元素、查找删除按钮并从删除按钮的 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);
});
其他人有更好的解决方案吗?
(...) downloadTemplateId: null, downloadTemplate: function (o) { } (...)
您可以设置downloadTemplate
功能并在此处对下载的文件执行您需要的所有操作。o.files 包含来自服务器的响应。
在文件中:script.js
添加代码:
getFiles__Name(data.files[0].name);
下线:
add: function (e, data) {
并在您的页面中添加:
var files=new Array();
function getFiles__Name(name){
files.push(name);
}
其中 files 将包含所有文件的名称。在我看来,这也不是最好的解决方案。
通过采用 FabriGad Ahmed 的答案并对其进行调整,我能够获得一系列已上传的文件。
在我看来,我添加了以下脚本:
var img_files=[];
function getFiles__Name(name){
img_files.push(name);
}
在 jquery.fileupload-ui.js 中,我在done函数中添加了以下内容:
//get the names of the already uploaded files
if (files){
$.each(files, function( index ) {
getFiles__Name( files[index].name );
});
}
这给了我一系列成功上传的文件。同样,如果有更好的方法可以做到这一点,我很想知道。