【发布时间】:2015-01-29 06:45:33
【问题描述】:
我有两个问题,可能是相关的。我正在使用 BlueImp 的上传插件将多个文件上传到 ASP.NET MVC 控制器,然后返回所需的 JSON 响应。通过单击按钮触发上传。
我希望上传者为正在上传的每个项目添加一个列表项目到<ul>(工作正常)。然后我想刷新一个显示成功上传文件的列表。问题是即使在成功上传后,“旧”文件仍保留在控件中。
例如,如果我成功上传了两个文件,当我想再上传两个文件时,正在向控制器发送四个文件。
第二个问题是我正在使用progressall 回调来监控所有文件何时上传OK。由于某种原因,应该在回调中执行的代码没有被执行。代码被注释以指示问题发生的位置。
我怀疑控件存在问题,无法识别上传已完成,因此存在未执行成功上传代码以及未清除文件的问题。我不知道为什么!
$('.filemanager-browse').fileupload({
url: '/Files/UploadFile',
dataType: 'json',
singleFileUploads: false,
add: function (e, data) {
var queue = $("ul.queue");
$(".upload-button").click(function () {
$.each(data.files, function (index, file) {
var queueItem = $("<li>Uploading: " + file.name + "</li>");
data.context = queueItem.prependTo(queue);
});
data.submit();
});
},
progress: function (e, data) {
$.each(data.files, function (index, file) {
/// Code to indicate the progress of individual uploads as the progress. Working fine.
});
},
done: function (e, data) {
$.each(data.files, function (index, file) {
/// Code to indicate that each file has been uploaded. Working fine.
});
},
error: function (e, data) {
$.each(data.files, function (index, file) {
/// Code to indicate any errors.
});
},
progressall: function (e, data) {
if (data.loaded == data.total) {
// SOURCE OF PROBLEM 2:
// CODE IN HERE NOT EXECUTING AFTER SUCCESSFUL UPLOAD
}
},
always: function (e, data) {
},
stop: function (e, data) {
// Should code that is in progress all be in here instead?
}
});
【问题讨论】:
-
你解决了吗?救命!
-
不 - 仍然完全被难住了。
-
谢谢!赞成:)
标签: jquery ajax file-upload upload blueimp