2017-04-23 142 views
0

我無法在Chrome中獲取圖像完整路徑,但是在IE中使用相同的代碼。每當我從其他位置選擇圖像,然後扔了誤差MVC Chrome圖像完整路徑

類型「System.IO.FileNotFoundException」的異常出現在mscorlib.dll中,但在用戶代碼中沒有處理 其他信息:找不到文件「 C:\ Program Files \ IIS Express \ Chrysanthemum.jpg'。

下面是我Controller代碼

public ActionResult Create([Bind(Include = "id,Name")] Employee employee, HttpPostedFileBase file) 
{ 
    if (ModelState.IsValid) 
    { 
     string Name = @"C:\temp\yourfile.png"; 
     System.IO.File.WriteAllBytes(Name, System.IO.File.ReadAllBytes(file.FileName)); 

     employee.image = System.IO.File.ReadAllBytes(file.FileName); 
     db.Employees.Add(employee); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    return View(employee); 
} 

下面是我MVC代碼

<input type="file" name="file" id="file" /> 
<input type="submit" name="submitButton" value="Save" /> 

因爲這個問題我不能夠在任何地方保存圖像。 請幫我解決這個問題。

回答

0

有/可能有幾個問題。

  1. 不要使用硬編碼的本地文件路徑,即C:\等,客人可以使用使用Server.Mappath
  2. 還要檢查你想要的(在你的情況,即圖像)訪問該資源在您的MVC應用程序的相同或底層的虛擬目錄
  3. 同時檢查您是否擁有對上述資源的訪問權限。

除非你想訪問另一個域的資源,否則上述檢查應該可以解決你的問題。

+0

嗨@Baua感謝您的回覆。其實我不使用硬編碼路徑。它發生在例外。我從本地系統中選擇圖像,並希望將其保存在項目位置,但對於本身而言,它會引發錯誤。 –