2012-08-13 59 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);