加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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>    
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读