Pie*_*NAY 9 javascript jquery file-upload jquery-file-upload
我正在使用非常好的jquery插件blueimp/jQuery-File-Upload
$('#fileupload').fileupload({
autoUpload: true
, filesContainer: '#attachments_presentation tbody'
, stop: function (e) {
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
而且我无法做一些非常简单的事情:获取上传文件列表
(在服务器上显示其名称)
首先,我天真地虽然它将存储在文件输入,所以我可以得到列表
$('#fileupload').val();
Run Code Online (Sandbox Code Playgroud)
但事实并非如此,所以我对此感到满意
$('#fileupload').fileupload('getfiles');
Run Code Online (Sandbox Code Playgroud)
我无法从文档中找到方法
有人能告诉我如何在服务器中获取上传文件名列表吗?
更新
我想在服务器上获取上传的文件名,以便以后能够管理它们.
例如:
trutruc.pdftest.pngtrutruc.pdf那么服务器中的当前文件列表应该是test.png,trutruc (2).pdf
更新2
当您实例化默认插件时,有一个代码部分正在检索所有以前上传的文件(假设您没有更改服务器代码):
请参见main.js文件第70行:
// Load existing files:
$.ajax({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: $('#fileupload').fileupload('option', 'url'),
dataType: 'json',
context: $('#fileupload')[0]
}).done(function (result) {
$(this).fileupload('option', 'done')
.call(this, null, {result: result});
});
Run Code Online (Sandbox Code Playgroud)
如果你在代码中进一步查看,有一个表格将用模板填写:
<table role="presentation" class="table table-striped"><tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"></tbody></table>
Run Code Online (Sandbox Code Playgroud)
加载文件后,您可以轻松地从该表中解析每个文件:
$('tbody.files tr').each(function(i, e) {
//according to @Brandon's comment it's now p.name
var name = $(e).find('td.name').text();
var size = $(e).find('td.size').text();
//etc.
});
Run Code Online (Sandbox Code Playgroud)
我使用UI版本.这是从文件表中获取服务器链接并填充数组的脚本:
var files = new Array();
$("#fileupload td p.name a").each(function() {
var name = $(this).attr("href");
files.push(name);
});
alert(files.join('\n'));
Run Code Online (Sandbox Code Playgroud)