jQuery fileupload - 获取上传文件的列表

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.pdf
  • 我上传 test.png
  • 我重新上传一个名为的文件 trutruc.pdf
  • 我删除了第一个文件

那么服务器中的当前文件列表应该是test.png,trutruc (2).pdf


更新2

我正在使用fileUpload 附带默认php脚本

soy*_*uka 9

当您实例化默认插件时,有一个代码部分正在检索所有以前上传的文件(假设您没有更改服务器代码):

请参见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)

  • 对于任何发现此解决方案正确的人; 确保你将它从'td.name'修改为'p.name',因为它已经改变了它的生成方式:) (2认同)

Eug*_*ala 9

我使用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)