我正在使用jquery uploadify插件让用户上传个人资料图片。我正在使用ASP.NET MVC。我有一些我希望得到帮助的问题:
$popup.find('#fileInput').uploadify({
'uploader': root + '/Content/Flash/uploadify.swf',
'script': root + '/Profile/ChangeAvatar',
'scriptData': { 'userName': $popup.find('#UserName').val(), 'token': $popup.find('#Auth').val() },
'cancelImg': root + '/Content/Images/cancel.png',
'auto': true,
'multi': true,
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
'queueSizeLimit': 90,
'sizeLimit': 4000000,
'buttonText': 'Change Avatar',
'width': 150,
'folder': root + '/uploads',
'onAllComplete': function (event, queueID, fileObj, response, data) {
//if (data.filesUploaded == "1") {
ShowMessage("Avatar uploaded successfully.");
//}
},
'onError': function (event, ID, fileObj, errorObj) {
var msg;
if (errorObj.type === "File Size")
msg = 'File size cannot exceed 4MB';
else
msg = "An error occured while attempting to upload your avatar."
ShowMessage(msg);
this.hide();
}
1.即使出现错误,onAllComplete事件也会触发。我可以查看是否有错误?因为如果有错误我不想显示我的成功消息。
2.上传文件后,如果我尝试立即上传另一个文件,我收到错误“另一个进程正在使用该文件”。我知道问题可能是因为即使是第二次上传也使用相同的文件名(用户名)。但我不确定如何解决这个问题。
谢谢!
答案 0 :(得分:2)
你的第一个错误是由于onAllComplete与onAllSuccess(实际上并不存在)类似。就像在jQuery AJAX调用中一样,当javascript完成运行时,onComplete会触发,完全忽略是否发生了任何错误。但是,onAllComplete确实包含data参数,该参数具有属性“errors”,该属性是上载过程中发生的错误数的计数。通过检查该值,您可以确定它是干净的上传还是出现问题。
关于第二个错误,我真的不确定该怎么办。我以前遇到过同样的问题,不记得我是否设法解决了这个问题。我可以尝试的唯一建议是查看实际的php或cs或者你上传后用来实际保存的文件,并确保它挂起文件-stream并释放其对文件的使用。