【问题标题】:Stop browser from downloading file if it can't be opened in browser如果无法在浏览器中打开文件,请停止浏览器下载文件
【发布时间】:2013-12-04 12:58:23
【问题描述】:

我有这个页面,里面有很多文件的列表

 a.jpg
 b.png
 c.php
 d.js
 e.pdf
 f.doc

它们都是链接,用户可以单击它们并在新选项卡中打开它们。问题是当用户单击 JPG 文件时它会打开,但是当用户单击 DOC 文件而不是打开它时会提示下载。我怎样才能停止下载并打开一个空白页面。做了很多搜索,但一无所获。

【问题讨论】:

  • 您希望浏览器如何显示(可能是 Word)文档?
  • 哪种浏览器支持Microsoft Office文件显示?这完全取决于您的服务器根据 Mime-Type 自动发送的标头 disposition。当您将 Doc 文件发送到浏览器时,您会看到二进制代码。
  • @bagonyi 这就是我想显示空白页而不是打开或下载 doc、docx 等文件的原因
  • 如果您想要一个空白页面并且不下载,请不要下载,而是删除链接或删除文件或将它们移动到其他目录。
  • 我认为投反对票的人没有理解这个问题。

标签: jquery html


【解决方案1】:

您无法分辨用户浏览器具有哪些功能以及哪些操作与哪种文件类型相关联。

简单示例:服务器不知道您安装了 Microsoft Word 的天气,服务器也不知道您的设置是“在浏览器中打开”还是“始终下载此类文件”。如果我们可以从服务器上告诉这一切,那将是一个安全问题。因为 JavaScript 能够在客户端和服务器之间进行交互,所以它也不知道这一切。

【讨论】:

  • 表示没有办法做到这一点?
  • 我认为这是正确的答案。您可以强制浏览器始终下载文件,反之则不行。服务器无法判断浏览器是否会下载或显示文件。 (服务器不知道浏览器 是什么。)在 Javascript 中,我认为您无法判断浏览器将如何解释链接。链接只是一个链接,你一开始并不知道它的背后是什么。您可以创建一个以 .png 结尾的 url,并且仍然从中返回一个 doc 文件。
  • @GolezTrol 我发现 mime 类型为 Image, audio , video 的文件可以在浏览器中打开,而那些具有 application 的文件可能会也可能会不被打开。那么检查mime并使用jquery打开文件可以吗?
  • image/bmp 或 image/tiff 也不会被您的浏览器打开。有些浏览器也可能显示application(例如application/xml)。并且某些浏览器可以根据插件或配置显示某些文件。例如,IE实际上可以通过在显示页面时嵌入Word来打开Word文档。与使用 Adob​​e Reader 显示 PDF 的方式相同。此外,你必须做一个实际的请求来学习 mime 类型。您是否要下载所有这些文档只是为了找出要隐藏的链接?用例是什么?
  • @GolezTrol 这将是一个问题。我要弹出一个仅显示打开请求的图像。 tnx 为您提供指导 :)
猜你喜欢
  • 1970-01-01
  • 2016-04-17
  • 2014-03-19
  • 1970-01-01
  • 2011-11-08
  • 2013-08-28
  • 2014-10-27
  • 1970-01-01
  • 2021-10-20
相关资源
最近更新 更多