【问题标题】:Opening a doc file or PDf file in new tab of browser在浏览器的新选项卡中打开 doc 文件或 PDf 文件
【发布时间】:2014-03-01 17:03:45
【问题描述】:

单击锚标记时,我必须在新选项卡中打开 doc 文件或 pdf 文件。我正在使用 MVc 4.0。 浏览器尝试在新选项卡中打开一个文件,但在此之前会打开一个下载屏幕/弹出窗口并限制文件在新选项卡中打开。我已经检查了互联网和 stackoverflow 的答案,我被写来做目标 =_blank 但它是不适合我。

我已将我的锚链接定义如下。我有文件名,这将是唯一的,因为我使用 datetime.now.tofiletime() 创建文件名。所以,我直接给出了我的文件名。但我首先必须检测文件是文档文件还是PDF文件或图像。下面的代码也可以达到这个目的吗?请指导:

<a href="/MyController/ViewDocument?FileName=145357456705009879.docx" target="_blank" title="View Document" style="display:block;" class="ViewDetailClass"> </a>

然后我在 MyController 类中有下面的 Action 方法。

 public ActionResult ViewDocument(string FileName)
    {
        try
        {
            var FullPath = Path.Combine(Server.MapPath("~/Content/Resources"), FileName);
            if (!System.IO.File.Exists(FullPath))
            {
                return HttpNotFound();
            }
            var contentType = "text/plain";
            return File(FullPath, contentType, Path.GetFileName(FullPath));
        }
        catch
        {
        }
        return File(new byte[] { }, "text/plain");
    }

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


    【解决方案1】:

    这将取决于客户端的设置。几乎总是会下载 docx 文件,因为它无法在浏览器 afaik 中显示。对于 PDF 文件,这取决于。在 chrome 中,它在浏览器中打开标准,但您可以明确告诉它不要这样做并在另一个应用程序中打开它。

    这些是客户端的设置,您无法从服务器进行控制。没关系,因为如果这是用户的偏好,它会感觉很正常。

    【讨论】:

    • 但是 Pdf 也打不开。你能告诉我我的控制器代码是否可以打开文件吗?如果没有,请指导我一些例子或其他东西。
    • PDF 正在工作。但图像和文档文件仍然无法正常工作。
    猜你喜欢
    • 2016-05-04
    • 2021-03-25
    • 1970-01-01
    • 2016-09-24
    • 2014-03-19
    • 2019-04-12
    • 2015-06-11
    • 2018-01-27
    相关资源
    最近更新 更多