Asp.net mvc 如何将文件夹路径传递给mvc控制器
我正试图使用Asp.net mvc 如何将文件夹路径传递给mvc控制器,asp.net-mvc,download,path,server.mappath,Asp.net Mvc,Download,Path,Server.mappath,我正试图使用@Html.ActionLink将文件夹路径传递给下载控制器,但我找不到位置错误,如 找不到文件“C:\t” Content\Project\Colege\WebApp\Media\@item.Content' 但是,当我给出硬编码值时,它确实起作用。请问有什么问题吗 这是我的密码: 行动方法: public FileResult Download(string fileName, string filePath) { byte[] fileBytes = System.IO
@Html.ActionLink
将文件夹路径传递给下载控制器,但我找不到位置错误,如
找不到文件“C:\t”
Content\Project\Colege\WebApp\Media\@item.Content'
但是,当我给出硬编码值时,它确实起作用。请问有什么问题吗
这是我的密码:
行动方法:
public FileResult Download(string fileName, string filePath)
{
byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);
string documentName = fileName;
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, documentName);
}
看法
如前所述,您的视图中有一个错误:
代码(“~/Media/@item.Content”)
呈现为C:\Teerth Content\Project\Colege\WebApp\Media\@item.Content
,您实际上希望在其中Server.MapPath(“~/Media/”+@item.Content)
查找实际的文件名
但是你需要重新考虑这个设计,因为它将你的整个机器向网络开放。一定会有人尝试
下载(“C:\Teerth Content\Project\Colege\WebApp\web.config”,“web.config”)
,公开您的连接字符串和其他应用程序设置,更不用说您服务器上的其他文件了,您真的不希望客户端下载这些文件 filePath=Server.MapPath(“~/Media/”+@item.Content)
感谢您发现问题。
@Html.ActionLink("Download", "Download", "Marketing", routeValues: new
{
fileName = @item.Content,
filePath = Server.MapPath("~/Media/@item.Content"),
area = "AffiliateAdmin"
}, htmlAttributes: null)