【问题标题】:File download link causing screen flash文件下载链接导致屏幕闪烁
【发布时间】:2014-04-11 14:02:36
【问题描述】:

我有一个锚标记,如下所示:

<a href="/resource/download/3" target="_blank">MyResource.txt</a>

这会调用一个 MVC 控制器来返回一个文件:

    public FileResult Download(int id)
    {
        var resource = _context.Find<Resource>(id);
        var filePath = Path.Combine(Request.MapPath("~"), resource.FilePath);

        var fileBytes = System.IO.File.ReadAllBytes(filePath);
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, resource.FileName);
    }

这一切都很好。我遇到的问题是,在下载文件之前,屏幕会非常短暂地闪烁到空白选项卡。我确定这是由于 target="_blank" 属性。但是,如果我删除该属性,我的主页 URL 将更改为 /resource/download/3。这不是我想要的。如何在没有屏幕选项卡/flash 的情况下获得文件下载行为,或者是否有可能?

【问题讨论】:

  • 你在使用 JavaScript 吗?也许是 jQuery?

标签: html asp.net-mvc


【解决方案1】:

尝试为响应设置Content-DispositionContent-Type HTTP标头,即设置

Content-Disposition: attachment; filename=MyResource.txt
Content-Type: application/octet-stream

对于您的.txt 文件的响应。现在,即使删除 target="_blank",您的文件也应该被下载。

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 2021-02-09
    • 1970-01-01
    • 2013-04-13
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多