问题标签 [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.
php - 强制在共享服务器上下载大文件
我正在尝试在某人的网站上添加指向大型视频文件(约 300MB)的下载链接,但不幸的是他们在共享主机上(我告诉他们,如果有很多人下载它,他们将不得不升级)。我不希望人们必须“将目标另存为”,我通常使用此代码强制下载:
这适用于较小的文件,但不适用于较大的文件,即使在打开错误后我也没有收到错误和错误日志。我确定这与共享内存限制(或可能超时)有关,但有谁知道我如何强制在共享服务器上下载大文件,最好没有 javascript,因为我确信我不能将内存限制设置为足够高?
非常感谢,
戴夫
pdf - 使用内容配置下载 pdf servlet 在 IE、chrome 和 firefox 中无法正常工作,但在 Opera 中无法正常工作
我正在使用内容配置从我的 servlet 下载 pdf 文件。我的代码适用于 chrome、firefox 和 IE,但问题是当我尝试使用 opera 下载 pdf 文件时,它会删除 pdf 扩展名并添加 htm。以下是我的代码:
heroku - 如何从 Rails 应用程序提供 S3 文件?
我试图让用户通过左键单击链接来下载 S3 文件。通常,他们必须通过右键单击并另存为来完成。
我查看了http://apidock.com/rails/ActionController/DataStreaming/send_file但不确定这是否是我想要的。
这篇文章http://www.jtricks.com/bits/content_disposition.html基本上展示了如何通过配置 Apache 来完成。但是,我们使用的是 Heroku。
之前有人使用过 Content-Disposition 从 S3 提供文件吗?还想知道这是否占用了整个 Web 进程(Dyno)?或者如果整个过程发生在 S3 服务器上?
我试过了:
我得到:
该文件确实存在。如果我手动导航到 url。该文件播放正常。
heroku - 是否可以在用户右键单击 + 保存为 Carrierwave + S3 + Heroku + Content-Disposition 之前重命名文件名?
是否可以在用户右键单击 + 保存为 Carrierwave + S3 + Heroku + Content-Disposition 之前重命名文件名?我正在考虑在将文件保存在 S3 服务器上之前清理文件名(例如 193712391231.flv),并将原始文件名保存在数据库的列中。
当用户决定下载文件时(右键单击并另存为)。我无法将其作为 193712391231.flv 提供/发送。相反,我想发送带有原始文件名的文件。
如何实施?
使用载波。我遇到过这个:
这不会由 S3 提供,因为它首先将文件缓存在本地文件系统中,然后将其发送到浏览器。它占用了整个网络进程(Heroku 中的 Dyno)。
如果有人有任何想法,请提出建议。
c++ - Content-Disposition 文件名中的特殊字符
我的问题是如何在 HTTP 中对 Content-Disposition 标头的文件名参数进行编码? 但是由于这个问题是很久以前提出的并且仍然没有令人满意的答案(在我看来),我想再问一次。
我开发了一个 C++ CGI 应用程序,它提供的文件名称中可能包含特殊字符,例如
“奇怪的 # € = { } ; filename.txt ”
似乎不可能以适用于每个浏览器的方式设置 HTTP Content-Dispostion,例如
- IE浏览器
- 火狐
- 铬合金
- 歌剧
- 苹果浏览器
我很乐意为每个浏览器提供不同的解决方案。
现在这就是我走了多远:
Internet Explorer(添加了双引号并替换了 # 和 ; )
Firefox(双引号似乎有效。没什么可做的):
另一个可行的选择:
铬合金
当仅使用双引号时,会出现这些问题:
- = 在文件名中消失
- € 将被替换为 -
但这有效:
歌剧
使用双引号或使用语法:filename*=UTF-8''... 会产生以下问题:
- 文件名中的多个粘贴在一起的空格减少到一个
- { 和 } 消失:“ ab{}cd.txt ” -> “ abcd.txt ”
- 文件名在 ; 之后被截断 其中:“ abc ; def.txt ”->“ abc ”
编辑 2:这是因为文件名长度限制。此语法适用于 Opera:
苹果浏览器
€ 将替换为不可见字符(使用双引号)
/li>
来自另一个线程(上面提到的)的建议使用
对我不起作用。转义字符不会被翻译回来,或者浏览器想要以我的 cgi 应用程序的名称保存到文件中。那是因为我的编码错误。我没有根据 RFC 5987 进行编码。但是 Safari 无论如何都没有使用这种编码。所以到目前为止还没有解决 € 字符的方法。
顺便说一句:UTF-8 转换器http://www.rishida.net/tools/conversion/
我在这些测试中使用了每个浏览器的最新版本:
- 火狐 7
- 互联网浏览器 9
- 铬 15
- 歌剧 11.5
- 野生动物园 5.1
PS:我在键盘上尝试了所有特殊字符。我在这个线程中只使用了那些制造麻烦的。
编辑:
我还在我的键盘上尝试了一个包含所有特殊字符的文件名(可能在文件名中),但它不像上面的测试字符串那样工作:
完整的测试字符串:
编码测试字符串:
使用这种方法:
我有以下结果:
- 火狐的作品
- 铬作品
- 即: $ % & ( ) = ` ´ { } [ ] ² ³ @ € µ ^ ° ~ + ' # - _ 。, ; ü ä ö ß 9.jpg(删除前 6 个字符)。编辑 2:这是因为浏览器的文件名长度限制。它开始从字符串的开头切断文件名。我没有深入研究,但看起来普通文件名可能有大约 200 个字符长,而具有许多转义序列的文件名甚至更多但少于 250 个。但这没关系。
- 歌剧:0!§ $ % & ( ) = ` ´ [ ] ² ³ @ € µ ^ ° ~ + ' # - _ 。, ; ü ä ö ß 9.jpg(像以前一样缺少一些字符)。编辑 2:我缩短了我的测试字符串,因为我怀疑 Opera 的文件名长度“问题”,就像 IE 一样,它也在那里工作。
- Safari 不适用于该语法。那是例外。
编辑2:
到目前为止的状态是,语法filename*=UTF-8''filname 转义序列“适用于除 Safari 之外的所有浏览器。唯一被 Safari 替换的字符是€。我想我可以忍受。谢谢你!
编辑 3:文件名长度
我注意到一些文件名长度问题。
- Internet Explorer:文件名可以是 147 个字符。如果字符串不包含转义序列,那么这就是文件名的长度。如果是这样,文件名可能会有所不同。生成的文件名少于 147 个字符。但它不同。我使用了 2 个转义序列,文件名缩短了 5 个字符,我使用了许多转义序列,文件名缩短了 2 个字符。我在这里找不到规则。
- 其他浏览器似乎没有这个问题。如果文件系统可以处理文件,他们会保存文件。例如,我尝试了 250 个字符,浏览器说我必须减少文件名 (Chrome),或者他们自己将其缩短为 220 (Opera) 或 210 (Firefox) 字符。Opera 切断了文件的结尾。Safari 尝试保存那个长文件名,但最终没有保存它,而是在下载列表中写入“-1”作为文件名。
.net - content-disposition 标头被发送两次....一次通过代码发送另一个未知
我有一个 .aspx 页面,我在其中手动设置标题以强制下载 pdf 文件。它在 IE 中运行良好,但在 chrome 和 firefox 8.0 中,它给出了一个错误。
我终于找到了问题的根源,因为 content-disposition 标头被发送了两次,但我不知道第一次是如何设置或为什么设置它的。
头的第一个实例就是:Content-disposition:Attachment 第二个是:Content-Disposition:attachment; filename=download.pdf <-- 这个由代码设置
IIS 是否以某种方式接管并添加标头的第一个实例?如果是这样,我怎样才能将其切换为不这样做?
编辑:添加设置标题的代码
http - 多部分/表单数据 HTTP POST 是否需要 Content-Disposition?
如果我只是不按特定顺序发送图像数组,即name
字段无关紧要,我只想让服务器filename
任意确定,该怎么办?
我必须Content-Disposition
为每个文件发送吗?
php - PHP - 强制文件下载脚本 - 在 IF 语句中不起作用
下面的代码是一个带有调用下载页面的 IF 语句的页面。
上面的页面还有其他内容,主要是用于定义变量的 SQL 连接。请注意,如果 IF 语句为假,则需要“dlfile.php”文件。这个文件如下
当我自己运行 dlfile.php 文件时,它工作得很好,并且下载提示应该会出现。但是,当它被第一个文件调用时,这就是我得到的。
我认为浏览器正在尝试将文件作为 Web 文档读取,但我不确定。我试图取出 dlfile.php 中的标签,我也切换了
到
代码本身仍然可以正常执行,但在原始文件调用时会生成相同的奇怪输出。
我试图将 dlfile.php 中的代码放入原始文件并获得相同的输出。
怎么了?
ruby-on-rails-3 - 在 Rails 中,无法覆盖内容配置文件名
我正在使用 Rails 3.1.0.rc8 和 Chromium 15.0.874.102。
我想设置 CSV 下载的文件名。我正在关注这个SO 解决方案,但发现自己无法修改filename
标题Content-Disposition
。
这是我的代码:
在我的控制器中:
在我的日志中:
在 Chromium 网络检查器工具中,我在响应标头中看到以下内容:
如果我将 更改Content-Type
为类似的东西foo/bar
,我会在我的网络检查器工具中看到更改。无论我设置什么filename
,它仍然是index.csv
.
谢谢,马克斯
email - 寻找通过电子邮件实现发布功能的策略
想象一下,您想提供在您的网站上发布新闻的功能,向给定地址发送电子邮件(例如 publish.news@domain.com)。
1) 基本策略是:查找text/html 而不是 disposition的内容,这是电子邮件的主要正文。
2)然后寻找任何其他的处置和附件的内容(你会得到所有的附件)。
3)丢弃任何其他处置和内联的内容,因为如果我错了,请纠正我,这有点像电子邮件签名,因此不需要。
到目前为止,这个策略效果很好。但是我不知道如何:
- 处理多部分/替代内容。一些客户端似乎使用这种主要/子类型内容类型组成 HTML。
- 处理多部分/混合(甚至不知道这是什么意思)。
- 如果任何电子邮件客户端允许在 html 中撰写,添加您自己的图像并以某种方式对其进行编码。
任何帮助深表感谢。