我使用的是Blueimp上传的jquery-ui版本,我喜欢如何格式化表格并显示刚刚上传的文件。但是我想将它用作文件管理器,所以我想要预先加载现有的文件和显示,就像它们刚刚上传一样。我怎样才能做到这一点?其他人已解决此问题的示例链接就足够了。顺便说一下,我上传了几种不同的文件类型,而不仅仅是图像。
谢谢!
答案 0 :(得分:30)
或没有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}});
答案 1 :(得分: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});
});
答案 2 :(得分:5)
我也有同样的问题。它的工作原理并不神奇。我建议检查UploadHandler.php文件。然后,您将能够根据您的需要修改此插件。
上面第二篇文章中的代码只是对上传器脚本的ajax调用(默认情况下,在server / php /文件夹中为index.php)。默认情况下,$ .ajax对象中的call方法设置为“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);
答案 3 :(得分: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做这件事,实际上需要这样做。
然后将您的somethingelse设置为您的文件或“”,具体取决于您要显示的内容。如果删除行文件= somethingelse,则会预先加载文件夹中的所有文件。