2012-08-13 65 views
1

我正在編寫一個需要能夠上傳和下載各種文件的網站。如.php,.rar,.jpg,.cs,.pdf,.txt等。當我使用純HTML,如:如何在mvc3中下載文件?

<a href="@Model.dList[i].filePath">download</a> 

它顯示在瀏覽器中的TXT和JPEG文件的內容,但我不希望這種事情發生。我猜我需要使用控制器併爲它編寫一些代碼。我做了一些研究,發現它與文件的contentType屬性有關。我跟他們玩了一下,寫了一個函數

控制器:

public FileResult DownloadDoc(int dID) 
    { 
     string filePath = getFilePath(dID); 
     string contentType = getContentType(dID); 
     filePath = Path.Combine(Server.MapPath(dr.GetString("FilePath")), dr.GetString("FileName")); 
     return File(filePath, contentType); 
    } 

查看:

@Html.ActionLink("Download", "DownloadDoc", new { dID = @Model.dList[i].documentationID }) 

有了這個功能的文件下載,但它的名字是DownloadDoc總是和不帶任何擴展。我被困在這裏。

我在上傳文件時應該做些什麼嗎?順便說一下,在我上傳文件後,他們的路徑,內容類型和文件名都存儲在數據庫中。我該怎麼辦?

回答

3
string fileName = "FileName.txt"; 
return File(filePath, contentType, fileName); 

然後,文件名是可變fileName的價值。

+0

工作正常,非常感謝。 – 2012-08-14 14:01:41

2

使用File()函數的第三個參數:

return File(filePath, contentType, downloadFileName);