我使用fineuploader V3.9 UI与MVC4应用程序中的jQuery的包装。 在这一点上,我认为,我应该只允许有2.5MB的文件,由validatieon的sizeLimit属性设置。 我现在的问题是,当我上传的不是支持的文件类型或太大我得到这个错误弹出一个文件:
错误处理程序似乎不火了,我的服务器端代码中没有断点被击中。 话虽这么说,当我选择一个小文件,我可以在我的控制方法的代码的断点停止一切工作正常(上传成功)。 任何线索,这是怎么回事与那些过大或不允许上传的文件?
下面是我的看法我所有的fineuploader js代码。 我有一个“完整”和“提交”处理的事件,这样我就可以在上传过程中正确地启用/禁用按钮,而这些火就好了。 不知道这是怎么回事的“错误”的处理程序,但。 我可以使用在UI jQuery的方式,我是“QQ”对象引用? 这不是其他任何地方使用,所以我不知道这是否是我的问题? 思考?
// Uploader control setup
var fineuploader = $('#files-upload').fineUploader({
request:
{
endpoint: '@Url.Action("UploadFile", "Survey")',
customHeaders: { Accept: 'application/json' },
params: {
surveyInstanceId: (function () { return instance; }),
surveyItemResultId: (function () { return surveyItemResultId; }),
itemId: (function () { return itemId; }),
loopingIndex: (function () { return loopingCounter++; })
}
},
validation: {
acceptFiles: ['image/*','application/xls','application/pdf', 'text/csv', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.ms-excel'] ,
allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'bmp', 'csv', 'xls', 'xlsx', 'pdf', 'xlt', 'xltx', 'txt'],
sizeLimit: 1024*1024*2.5, // 2.5MB
stopOnFirstInvalidFile: false
},
multiple: true,
text: {
//uploadButton: '<i class="icon-plus icon-white"></i>Select your upload file(s)'
uploadButton: 'Select your upload file(s)'
}
}).on('submitted', function(event, id, filename) {
alert('submitted ' + filename);
filesToUpload++;
$(':input[type=button], :input[type=submit], :input[type=reset]').attr('disabled', 'disabled');
}).on('complete', function(event, id, filename, responseJSON) {
alert('completed ' + filename);
uploadedFileCounter++;
if (filesToUpload == uploadedFileCounter)
{
$(':input[type=button], :input[type=submit], :input[type=reset]').removeAttr('disabled');
}
}).on('error', function(event,id, name, errorReason, xhr) {
alert(qq.format("Error on file number {} - {}. Reason: {}", id, name, errorReason));
});
});
下面是这是一个上载过程中击中了我的服务器方法的外壳:
[HttpPost]
public JsonResult UploadFile(HttpPostedFileWrapper qqfile, int surveyInstanceId, int surveyItemResultId, int itemId, int loopingIndex)
{
try
{
bool isValid = false;
// MORE UPLOAD CODE
if (isSaveValid && isResultItemEntryValid)
isValid = true;
return CreateJsonResult(isValid);
}
}
而我的方法,返回JSON成功消息
private JsonResult CreateJsonResult(bool isSuccess)
{
var json = new JsonResult();
json.ContentType = "text/plain";
json.Data = new { success = isSuccess };
return json;
}
这一切工作正常在Firefox V24和V30的Chrome但在IE 9,调试控制台中我看到这一点:
在IE中,提交并完成事件触发,但上传失败。 在其他浏览器中,正确的最大尺寸超过误差是可见的,并没有事件触发。