13

我正在使用 Blueimp 上传的 jquery-ui 版本,我喜欢如何格式化表格并显示刚刚上传的文件。但我也想将它用作文件管理器,所以我想预加载现有文件并显示,而不是像它们刚刚上传一样。我怎样才能做到这一点?指向其他人已解决此问题的示例链接就足够了。顺便说一句,我正在上传几种不同的文件类型,而不仅仅是图像。

谢谢!

4

4 回答 4

32

或者没有 ajax 调用:

  1. 准备包含现有文件详细信息的数组,例如:

    var files = [
        {
            "name":"fileName.jpg",
            "size":775702,
            "type":"image/jpeg",
            "url":"http://mydomain.com/files/fileName.jpg",
            "deleteUrl":"http://mydomain.com/files/fileName.jpg",
            "deleteType":"DELETE"
        },
        {
            "name":"file2.jpg",
            "size":68222,
            "type":"image/jpeg",
            "url":"http://mydomain.com/files/file2.jpg",
            "deleteUrl":"http://mydomain.com/files/file2.jpg",
            "deleteType":"DELETE"
        }
    ];
    
  2. 调用完成回调

    var $form = $('#fileupload');        
    
    // Init fileuploader if not initialized
    // $form.fileupload();
    
    $form.fileupload('option', 'done').call($form, $.Event('done'), {result: {files: files}});
    
于 2014-02-12T12:49:10.310 回答
5

在主 js 文件中找到代码......它是如何工作的并不明显。让它工作得很好。

// Load existing files:
$.ajax({
    url: $('#fileupload').fileupload('option', 'url'),
    dataType: 'json',
    context: $('#fileupload')[0]
}).done(function (result) {
    $(this).fileupload('option', 'done').call(this, null, {result: result});
});
于 2013-02-22T17:33:20.403 回答
5

我也有同样的问题。它的工作原理并不神奇。我建议检查 UploadHandler.php 文件。然后您将能够根据您的需要修改此插件。

您第二篇文章中的上述代码只是对上传器脚本的 ajax 调用(默认情况下 index.php 在 server/php/ 文件夹中)。$.ajax 对象中的调用方法默认设置为“get”。

打开 UploadHandler.php 文件并转到类方法“initialize(...)”。您将看到如何处理带有“get”的调用。UploadHandler 调用类方法 this->get(.:.) 来准备和发送现有文件的列表。如果您使用其他上传目录,则需要将参数传递给 UploadHänder。只需更改 $.ajax 对象中的 url 属性,例如:

url: $('#fileupload').fileupload('option', 'url')+'?otherDir='+myDir,

那么你应该在创建一个新的 UploadHandler 对象之前初始化 UploadHandler 的 option 属性,如下所示:

$otherDir = trim($_REQUEST['otherDir']);
$otherDir_url = [anyURL] .'/'.$otherDir;//so that the files can be downloaded by clicking on the link

$options = array(
'upload_dir'=> $otherDir,
'upload_url'=> $otherDir_url,
);

$upload_handler = new UploadHandler($options);
于 2013-04-24T15:08:48.623 回答
1

如果你们中的任何人看到这个是在 .NET 中做的,找到这个:(对我来说它在 application.js

对于一个相当新的版本,有一个功能

    // Load existing files:
$.getJSON($('#fileupload form').prop('action'), function(files) {

files = somethingelse;

    var fu = $('#fileupload').data('fileupload');
    fu._adjustMaxNumberOfFiles(-files.length);
    fu._renderDownload(files)
        .appendTo($('#fileupload .files'))

        .fadeIn(function() {
            // Fix for IE7 and lower:
            $(this).show();
        });
});

在 application.js 内部,我正在为 .NET 做这件事,实际上需要这个。

然后根据您要显示的内容将您的其他内容设置为您的文件或“”。如果删除行 files = somethingelse 那么它将预加载文件夹中的所有文件。

于 2015-11-11T14:05:21.093 回答