我在局部视图中使用fineuploader,它将在单页中多次出现。所以会有多个fineuploader实例。它在IE 10中运行良好。 在IE 7中描述的是回退机制和显示上传按钮。 单击as autoupload为true后,它会成功上传文件。 在服务器端,我将生成fileId作为Guid并在Json中返回。因为IE 7不支持xhr 2;我没有得到onComplete事件,因为文件是以下载的形式返回json。
有什么方法我知道文件上传完成并返回生成的文件?
非常感谢您的帮助。
这是我的代码:
function InitializeDragDrop(id, isSingle, oldfiles, fieldId) {
var itemLimit = isSingle == true ? 1 : 10;
var restrictedUploader = new qq.FineUploader({
//debug:true,
element: document.getElementById(id),
template: 'qq-template',
callbacks: {
onError: function(fileid, name, errorReason, xhr) {
alert(errorReason);
},
onComplete: function(fileid, name, response, xhr) {
debugger;
if (response.success != '') {
fileid = response.newUuid;
addFileToList(fileid, fieldId);
}
},
onDeleteComplete: function(fileid, xhr, isError) {
if (!isError) {
fileid = $.parseJSON('[' + xhr.response + ']')[0].newUuid;
removeFileFromList(fileid, fieldId);
}
},
onValidate: function(data, btnName) {
var filename = data.name;
var result = $.ajax({
type: "GET",
url: '../ReferredFieldSelector/CheckDuplicateFileName?fileName=' + filename,
async: false
}).responseText;
if (result == 'True') {
ShowDuplidateFilePopup(filename);
return false;
}
}
},
request: {
endpoint: '@Url.Action("UploadFiles", "ReferredFieldSelector")',
params: { fieldId: fieldId }
},
validation: {
itemLimit: itemLimit,
stopOnFirstInvalidFile: false
},
//messages: {
// tooManyItemsError : "Too many items ({netItems}) would be uploaded. Item limit is {itemLimit}.",
//},
cors: {
//all requests are expected to be cross-domain requests
expected: true,
//if you want cookies to be sent along with the request
sendCredentials: true
},
deleteFile: {
enabled: true,
method: 'POST', // defaults to false
endpoint: '@Url.Action("DeleteTempararyFiles", "ReferredFieldSelector")'
}
});
if (!(typeof(oldfiles) === 'undefined')) {
restrictedUploader.addInitialFiles(oldfiles);
}
};
更新:
我已经尝试将内容类型更改为" text / plain"正如你的一篇文章所建议的那样。
但它给了我以下错误
我从服务器获得的响应如下:
HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: text/plain; charset=utf-8
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 25 Oct 2016 20:38:48 GMT
Content-Length: 75
{"success":true,"newUuid":"61bb0f01-e763-4649-b975-20fbc0eefa3d","name":""}
有什么错吗?
我需要新生成的newUuid用于客户端处理,因为我在临时位置上传到服务器,当我最终保存主表单时,我将文件从临时位置移动到最终位置进行此操作我将这些ID保存在客户端列表中,直到用户保存表单
如果我将调试器放入事件直到验证事件正常工作但在此之后onSubmit,onComplete,onAllcomplete未触发但文件已成功上传到服务器。