我已經在ASP.MVC中實現了上傳功能。我正在使用jQuery.BlockUI
和JQuery.Form
插件(但我不知道這是非常重要的)。 Google Chrome瀏覽器中的所有功能都很完美。圖片上傳在mozilla和Internet Explorer中不起作用 - 要求保存文件
但是在Mozilla和Internet Explorer中並沒有。當我嘗試上傳圖像時,它會彈出一個窗口詢問我:
上傳。你已選擇打開上傳這是一個:應用程序/ json 從http://localhost:2993 Firefox應該用這個文件做什麼?
而我已打開/保存和瀏覽選項。
在我上傳的方法,我返回JSON這裏是代碼:
[HttpPost]
public JsonResult Upload()
{
string savedFileName = null;
string hName = null;
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase hpf = Request.Files[i] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileNameThumb = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
"Content", "Images", "Thumb",
Path.GetFileName(hpf.FileName));
savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
"Content", "Images", "Full",
Path.GetFileName(hpf.FileName));
hName = hpf.FileName;
ImageModel.ResizeAndSave(savedFileName, hpf.FileName, hpf.InputStream, int.MaxValue, false);
// for cropping
ImageModel.ResizeAndSave(savedFileName, hpf.FileName, hpf.InputStream, 540, false);
}
string r = string.Format("../../Content/Images/Full/{0}", hName);
return Json(new { foo = r });
}
什麼產生這個錯誤?
@ 1110:結果將作爲由瀏覽器頁面進行處理,所以它必須是一個頁面。如果您需要返回任何信息,則必須將其放入頁面中,可以在加載頁面時運行的腳本中,也可以將其放入可從其他腳本訪問的元素中。 – Guffa
真的嗎?這是一個答案?我可以想到爲什麼你想讓你的上傳腳本返回json。最明顯的原因是你已經在js上完成了一個異步文件上傳,而你不想離開當前頁面/應用程序。這裏的錯誤是瀏覽器不期待json,因爲請求/響應是如何設置的,因此試圖打開它而不是僅僅使用js中的數據。 – FlavorScape
@FlavorScape:Badmouthing其他答案是不是很有禮貌。 – Guffa