c# – 在MVC3中更改要下载的文件名
发布时间:2020-12-16 00:01:27 所属栏目:百科 来源:网络整理
导读:问题:我有来自数据库的Id命名的文件.当有人想要下载它时,我需要将其更改为真实姓名.服务器上的文件看起来像例如: http://localhost:34256/Content/uploads/23.所以例如我的文件名是23但我需要将其更改为textfile1.txt. 我创建了一个包含这些文件列表的局部
问题:我有来自数据库的Id命名的文件.当有人想要下载它时,我需要将其更改为真实姓名.服务器上的文件看起来像例如:
http://localhost:34256/Content/uploads/23.所以例如我的文件名是23但我需要将其更改为textfile1.txt.
我创建了一个包含这些文件列表的局部视图: @foreach (var item in Model) { <a href="/Content/uploads/@item.Id" title="@Html.Encode(item.FileName)"> <img src="@item.IcoSrc" /><br /> @item.FileName </a> } 其中@ item.FileName是文件的真实名称.当有人从这个列表中下载文件时,他得到的文件名为@ item.Id而不是@ item.FileName.我该怎么改变它? 我正在使用MVC3和.NET framevork 4. 任何帮助非常感谢! 解决方法
您可以创建一个将为该文件提供服务的控制器操作:
public ActionResult Download(string id,string name) { var file = Server.MapPath("~/Content/uploads/" + id); return File(file,"application/octet-stream",name); } 然后指向此控制器操作的链接: @foreach (var item in Model) { <a href="@Url.Action("Download",new { id = item.Id,name = item.FileName })" title="@Html.Encode(item.FileName)"> <img src="@item.IcoSrc" /><br /> @item.FileName </a> } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |