如何在mvc3下载文件?

时间:2012-08-13 09:43:09

标签: asp.net-mvc-3 file razor upload download

我正在编写一个网站,需要能够上传和下载各种文件。如.php,.rar,.jpg,.cs,.pdf,.txt等。当我使用简单的html时:

 <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,不带任何扩展名。我被困在这里。

在上传文件时,我应该做些什么吗?顺便说一下,在我上传文件之后,他们的路径,内容类型和文件名都存储在数据库中。我该怎么办?

2 个答案:

答案 0 :(得分:3)

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

然后,文件名将是变量fileName的值。

答案 1 :(得分:2)

使用File()函数的第三个参数:

return File(filePath, contentType, downloadFileName);