6

我在PHP docs上读到了一些关于此的内容,但我不清楚:

  1. 最广泛使用的浏览器(IE、FF、Chrome、Safari、Opera……)是否支持这种PUT上传文件的方法?

  2. 我应该编写什么 HTML 以使浏览器通过PUT请求调用服务器?我的意思是我需要FORMINPUT文件字段编写 a 并将属性替换method="POST"method="PUT"?

  3. 在 PHP 文档(上面的链接)上,他们说PUT请求比上传文件时的请求简单得多,除了这个优势之外,与 相比,还有POST哪些其他优势/劣势?PUTPOST

4

4 回答 4

6

不能从 <form> 使用 PUT 方法。MSIE 根本不通过用户 GUI 支持它。但是,您可以使用XMLHttpRequest。它似乎是在标准和 WHATWG / HTML5 中定义的。我的浏览器(Opera)显然喜欢它。

http://old.mnot.net/javascript/xmlhttprequest/ IE 也可以工作,就像谷歌的简短搜索所暗示的那样。Firefox 看起来不错。未检查 Chrome 或 Webkit。

服务器站点需要一个专门指定的脚本来处理传入的 PUT 请求。查看 Apache 文档。mod_rewrite 规则通常可以做到。PUT 的一般优势是不需要文件编码/编组为 multipart/* mime 类型。从理论上讲,这允许更可靠地上传更大的文件。尽管如果您使用 PHP,它不会对您有太大帮助。它适用于支持 WebDAV 和/或直接文件系统写入访问的 Web 服务器。(如果您使用它,Apache 可以自己保存上传的文件。)

于 2010-05-19T11:58:23.187 回答
1

我认为大多数主要浏览器都支持该方法,但是您不能考虑所有浏览器和其他客户端。粗略地看一下用户贡献的笔记,有时甚至需要服务器端配置才能工作。

此外,处理您可能希望随文件一起发送的任何其他表单值变得更加困难。

我不会用它。太多可能的麻烦几乎没有实际收益。

于 2010-05-19T09:12:57.197 回答
0

PUT很少用于此目的且仅受主要浏览器支持的事实将其排除在此处的任何可能用途之外。

于 2010-05-19T09:15:04.260 回答
-1

PUT浏览器并不广泛支持,通常不用于交互式 HTML 表单。

于 2010-05-19T09:11:46.200 回答