gpt4 book ai didi

php - 为什么 Firefox 提示下载 POST 到的文件?

转载 作者:可可西里 更新时间:2023-11-01 00:53:14 24 4
gpt4 key购买 nike

这是最奇特的事情。

它来自旧的内部 CMS。

当我尝试提交更改时,它会提示保存在表单的 action 属性中链接的文件。

标题

请求

POST /~site/edit/articles/article_save.php?id=54 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://example.com
Content-Type: multipart/form-data; boundary=---------------------------10102754414578508781458777923
Content-Length: 940
-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="title"

Home Content
-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="catid"

18
-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="activecheck"

1
-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="image"


-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="contentWidgToolbarSelectBlock"

<p>
-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="content"

<p>Edit your article in this text box.</p>
-----------------------------10102754414578508781458777923
Content-Disposition: form-data; name="contentWidgEditor"

true
-----------------------------10102754414578508781458777923--

响应

HTTP/0.9 200 OK

然后 Firefox 显示....

Firefox
(来源:alexanderdickson.com)

我无法根据响应 header 确定提示打开/保存的原因。它一直有效。站点上的所有其他 PHP 文件都可以正常工作。

有人知道吗?

谢谢

更新

显然,它只是崩溃 Safari。

我在 CMS 文章中添加了一张图片,由于某些未知原因,它被正确保存了。我无法解释为什么。

最佳答案

Web 服务器似乎认为您的请求不是 HTTP/1.0+ 请求,因此回退到史前 HTTP/0.9,从头开始担心。

因此它返回一个 HTTP/0.9 响应。 HTTP/0.9 响应中没有 Content-Type header ,因此浏览器不知道返回的文件类型,因此将其视为 application/octet-stream 并提示保存。

请求是如何生成的,您如何检查它?因为这看起来很可疑:

Content-Length: 940
-----------------------------10102754414578508781458777923

这两行之间应该有另一个换行符。需要双换行符来表示标题的结尾。

(像这样的问题也可能发生,因为一些 Windowsy 沿线正在吃掉 CRLF 序列并将它们变成普通的 LF 换行符,阻止它们作为 HTTP/MIME 行结尾工作。)

关于php - 为什么 Firefox 提示下载 POST 到的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com