问题标签 [content-disposition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
file - 强制下载 'data:text/plain' URL
我想知道是否可以强制浏览器(至少 Chrome)下载data:text/plain
URL。
Chrome 会下载二进制 URL(例如data:application/zip;base64,...
),但不会下载可以在浏览器中查看的文件(例如文本文件)。
到目前为止,我已经尝试过没有运气的是:
但似乎我无法添加这样的标题。
有什么方法可以让 Chrome 下载一个data:text/plain,...
URL?
php - php重定向+强制下载
我正在创建一个 google-chrome 应用程序,该应用程序将从八位字节流中下载歌曲,但是由于 JavaScript 限制,我无法创建“下载”按钮。用户必须右键单击并选择将文件另存为。我希望创建一个 php 页面,将浏览器重定向到八位字节流的位置,该位置将在不同的站点上,然后在那里创建一个下载对话框。我知道这里可能存在安全限制,但是是否可以进行 php 页面重定向并设置它重定向到的该页面的内容处置标题?
注意:我无法从我的服务器获取八位字节流进行保存,因为我使用的主机不支持对外部站点的 php 调用。
java - 神秘的 Content-Disposition 标头案例
我们的产品包括一个由 SWFObject 加载的 Flash 应用程序。对于一位客户,当通过 HTTPS(但不是 HTTP)访问此 SWF 时,Flash Player 不会加载它。
我要求客户直接转到 SWF 文件的 URL(而不是包装页):
- 当他通过 HTTP 执行此操作时,SWF 会加载到浏览器中。
- 当他通过 HTTPS 执行此操作时,IE7 会向他显示一个“保存文件”对话框。这意味着响应中存在“Content-Disposition:附件”标头。这也可以解释为什么 SWF 没有在 Flash Player 中加载:作为一种安全措施,它不会播放带有该标头的 SWF。
所以,我有几件事要弄清楚:
如何确定服务器正在发送 Content-Disposition 标头(而不是 IE7 的奇怪工件)?用户只能使用 IE7,不能使用 Firefox、Chrome 等。IE7 不包括 IE9 开发人员工具中提供的方便的“网络”选项卡。
假设标题存在,它是如何到达那里的?他们正在运行 Tomcat 6。SWF 由 Tomcat 的默认 servlet 提供服务。如果使用 HTTPS 连接器,则标头似乎存在,但如果使用 HTTP 连接器,则不存在。除了启用 HTTPS 连接器之外,Tomcat 配置是库存的。
在旁注中,我不相信 Flash 的缓存清除。在我的 IE9 下的机器上,即使在我明确清除浏览器缓存和 Flash Player 存储的数据后,缓存也经常满足 SWF:我在 Fiddler 或 Tomcat 的访问日志中没有看到任何请求,但 SWF 加载浏览器。我在这里错过了什么吗?客户是否正在访问某些伪造的 SWF 缓存版本?
编辑:显然开发人员工具中的“清除缓存”命令并没有真正清除缓存。使用标准方法产生了预期的结果。
编辑 2:在 Tomcat 中进行跟踪表明未设置 Content-Disposition 标头。我不确定浏览器是否没有收到它,但是AFAIK浏览器直接连接到Tomcat。这似乎是一种奇怪的浏览器端行为。
php - 我的 PHP 中的文件传输代码是否正确?
我有这个页面应该是一首歌的下载。下载对我来说在 Firefox 中有效,但在 chrome 和 safari 中没有任何反应..这是我的代码
我已经尝试了各种不同的方法来使其正常工作,但是两个浏览器中都没有发生任何事情......任何想法或帮助将不胜感激......
php - 将 Word 文档作为附件发送
我正在使用 PHP 动态创建 Word 文档,我需要将其作为附件发送。
有没有办法将其临时保存到服务器以便通过电子邮件发送?有没有更好的办法?
java - 用户使用“另存为”时如何选择文件名?
我在 AppEngine 数据存储上实现了基本的文件上传/下载。
我想要的功能是将名为“base.c”的文件作为文本文件打开。所以我做了以下事情:(
当然我的代码是针对一般情况的,但是这个具体的例子说明了这个问题)
这将在浏览器中将其作为文本文件打开,这正是我所需要的。
但我也希望当用户使用浏览器的“将页面另存为..”选项时,它将提供“base.c”的初始名称。它在 Firefox (6) 中就是这样做的,但它在 chrome(15) 和 safari(5) 上给出了“下载”的默认名称。
Even worse - when choosing base.c as the file name chrome warns the user that this is the wrong extension and asks for confirmation to continue.
现在,如果我使用“附件”而不是“内联”,它不会打开文件,而是用正确的名称下载它。
我该怎么做才能使默认另存为..名称为“base.c”?
这是浏览器的错还是我滥用了 HTTP 标头?
(如果有任何帮助,所有测试都在 OSX 10.6 上,下载站点属于:http:
//------.appspot.com/download?name=base.c)
download - Excel .xlsx 下载 - 打开和保存组合上的共享冲突错误消息
我发现这个问题提出了几次,但还没有明确的答案。看起来像一个体面的解决方案会帮助不少人。
因此,我们在服务器上创建了一个 excel 文件 (.xlsx) 并使用 content-disposition 'attachment' 将其下载到客户端。如果您选择“保存”或“打开”然后“另存为”,则会出现“打开保存”对话框,并且一切正常... 但是,如果您选择“打开”然后点击“保存...”按钮,则 Excel 会挂起片刻,然后显示以下消息:您的由于共享冲突,无法将更改保存到“Export[5].xlsx”。尝试保存到其他文件。那么:您尝试打开的文件“F8CAC020.IE5\HM2NBE5C\F8CAC020”的格式与文件扩展名指定的格式不同。在打开文件之前,请确认文件没有损坏并且来自受信任的来源。您现在要打开文件吗?然后:你终于得到了另存为:对话框(假设你按下了“是”)。
创建文件的代码是:
如果您删除 content-disposition 标头,您将在 Excel 中获得正确的行为,但名称错误并且不能保证 Excel 文档不会显示在浏览器中(取决于客户端设置)。如果您按打开然后保存,那么您会收到一条消息:“default.aspx”是只读的。若要保存副本,请单击“确定”,然后在“另存为”对话框中为工作簿指定一个新名称。
所以问题是如何将这两种行为组合成一个合理的行为:当您尝试打开然后保存下载的文件时,直接在上面获取漂亮的错误消息,但还要指定应该下载文档并指定默认文件名。
干杯,
詹姆士
.net - 内联文件名内容处理和注入动态文件名以保存操作的解决方案
本质上,我正在将 pdf 从内存流式传输到用户的浏览器。我想让系统用户能够在 adobe 中(在浏览器中)点击保存,并让文件名预先填充一个动态值(例如客户的姓氏)。
到目前为止,我已经阅读了一些有关此问题的信息,似乎设置内联文件名的内容处置标头未正确实现。
我已经读过 adobe 从生成 pdf 的页面中获取文件名。即如果页面名称是pdfviewer.aspx,那么pdf文件名的预填充值为pdfviewer.pdf。
我正在寻找解决方法。我最初的想法是创建一个 http 处理程序,它将生成并推出 pdf,并具有这样的 web 配置:
这样,当我将链接动态设置为“lastname.ashx”时,它应该在 PDFHandler 中运行代码,而 url 将类似于“...\lastname.ashx”。我似乎能够让它在概念验证中工作(用简单的 repsonse.write("hello world") 代替 pdf 的生成),但我只是想知道,是否有更好的解决方法?
注意:概念证明仅适用于 IE,我很高兴,因为它是针对此 Intranet 应用程序的浏览器。
java - 如何正确设置 Java 中大文件名的 HTTP Content-Disposition?
我正在处理一些要求,这些要求将导致从 J2EE Web 服务器下载任意 PDF 文件。名称可能如下所示:
Xxxxxxxxxxxxxxxxxx - Yyyyyyyyyy - Aaaaaaaaaaa - Bbbbbbbbb ccc Dddddddddddddd - abc1234560 - 2009-03-26 – 235959.pdf
现在我已经阅读了 RFC2183 中的几个部分:
http://www.ietf.org/rfc/rfc2183.txt
例如
一个短(长度 <= 78 个字符)参数值,仅包含非
tspecials' characters SHOULD be represented as a single
令牌'。一个短参数值,仅包含 ASCII 字符,但包括tspecials' characters, SHOULD be represented as
quoted-string'。超过 78 个字符或包含非 ASCII 字符的参数值必须按照 [RFC 2184] 中的规定进行编码。
等等等等。现在有数以百万计的事情会出错,如果我不通读所有这些 RFC……或者我选择一个处理此类 RFC 规范的库。Java有这样的东西吗?或者我是偏执狂,实际上只需将此标头写入输出流就足够了:
django - 链接到下载图像而不是查看图像(不能更改内容处置标题)
我有一个 Django 应用程序,所有静态内容都是通过 NGINX 处理的。我想允许用户通过单击标记中的链接在其客户端中下载几个静态资源(照片)。
为了使链接/资源可下载,我知道我可以更改 Content-Disposition。不幸的是,由于我所有的静态资产都是通过 NGINX 提供的,这似乎是有问题的。我不想创建一个视图只是为了更改 Content-Disposition 并使图像可下载。
我可以通过 jQuery 或其他方式在这里做些什么吗?