出於項目需要,應用了ajaxfileupload.js,Jquery外掛程式之一,部分js代碼如下
$.ajaxFileUpload({
url: "UpLoadTemplte.aspx",
secureuri: false,
fileElementId: "upfileInput",
dataType: "json",
success: function(data,status){
if(data.Flag=="1")
{
$("#divmsg").html("<img src='../Images/upok.gif' />"+data.Msg);
$("#loading_msg").html("");
}
},
error: function (data, status, e)
{
alert("上傳失敗:"+e.toString());
}
})};
提交頁面是UpLoadTemplte.aspx,主要是儲存上傳檔案,返回資料類型是json,頁面伺服器端主要代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
try
{
HttpFileCollection uploadFiles = Request.Files;//上傳檔案集合
HttpPostedFile theFile = uploadFiles[0];//擷取上傳Excel檔案
theFile.SaveAs(toFile);
Response.Write("{ Flag:'1', Msg:'檔案上傳成功', Filename:'" + fileName + "', OriFileName:'" + oname + "' }");
}
catch
{
Response.Write("{ Flag:'1', Msg:'檔案上傳失敗', Filename:'0' , OriFileName:'" + oname + "' }");
}finally
{
Response.End();
}
}
一看貌似沒有問題,運行時候就是object error的錯誤,由於js調試沒有掌握,vs2005斷點調了半天也找不到問題,最後找到一個人家用
ajaxfileupload.js做的一個Demo,仔細對比了一下,發現缺少了一句及其不起眼的Response.End();靠。。。。暈。。。