我使用的是Blueimp上传的jquery ui版本,我喜欢如何格式化表格和显示刚刚上传的文件。但我也想把它用作文件管理器,所以我想预加载现有的文件并显示,而不是像刚上传一样。我该怎么做?一个其他人已经解决了这个问题的示例链接就足够了。顺便说一句,我正在上传几种不同的文件类型,而不仅仅是图像。
谢谢!
或者没有ajax调用:
-
准备包含现有文件详细信息的数组,例如:
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" } ];
-
呼叫完成回调
var $form = $('#fileupload'); // Init fileuploader if not initialized // $form.fileupload(); $form.fileupload('option', 'done').call($form, $.Event('done'), {result: {files: files}});
我也遇到了同样的问题。它的工作方式并不神奇。我建议检查UploadHandler.php文件。然后你就可以根据自己的需要修改这个插件了。
上面第二篇文章中的代码只是对上传器脚本的ajax调用(默认情况下是server/php/文件夹中的index.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);
在主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});
});
如果你们中有人在.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();
});
});
应用程序内部.js虽然我是为.NET做这件事的,但实际上我需要把它去掉。
然后根据你想显示的内容,将你的东西设置为你的文件或"。如果删除行files=somethingelse,那么它将从文件夹中预加载所有文件。