[英]Downloading file from server in ASP.net MVC (Error 404 not found)
我有一個簡單的操作,該操作應允許我下載要求的文件。
如果我使用瀏覽器的上下文菜單調用該操作,則效果很好(請參見下面的屏幕截圖),但是當我直接單擊鏈接時,出現以下錯誤: HTTP錯誤404.0-找不到-您正在尋找的資源已被刪除,更名,或暫時不可用。
使用瀏覽器的上下文菜單:
用於下載文件的控制器操作:
public ActionResult Download(string id)
{
string username = User.Identity.Name;
Client client = db.Client.SingleOrDefault(x => x.Email == username);
string filePath = Server.MapPath("~/Client-Documents/" + client.FolderName + "/" + id);
return File(filePath, "text/plain", id);
}
查看正在生成文件鏈接的代碼段:
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>@(i + 1)</td>
<td>@Model[i].Name</td>
<td>
<a href="@Url.Action("Download", "Client", new { @area = "Administration", id = Model[i].Location })">Download</a>
</td>
</tr>
}
您正在傳遞包含擴展名的文件名,因此ASP.NET將忽略它並將其視為靜態文件,從而產生404。為避免這種情況,請不要傳遞擴展名。 可能最好按ID引用文件。
還要注意,如果文件是數據的一部分,則最好將它們存儲在數據庫中。 這避免了許多文件系統陷阱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.