PHP上传文件使用PUT而不是POST

时间:2010-05-19 09:09:52

标签: php file-upload http-put

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

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

  2. 我应该编写哪些HTML来让浏览器通过PUT请求调用服务器?我的意思是我是否需要使用FORM文件字段编写INPUT,只需将method="POST"替换为method="PUT"

  3. 在PHP文档(上面的链接)上,他们说在上传文件时PUT请求比POST请求简单得多,还有这个优势,还有什么其他优点/不足之处呢? PUT已与POST

  4. 进行了比较

4 个答案:

答案 0 :(得分:6)

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

http://old.mnot.net/javascript/xmlhttprequest/ IE可能也会起作用,就像Google搜索提示的那样。 Firefox看起来很好。未选中Chrome或Webkit。

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

答案 1 :(得分:1)

我认为这种方法得到了大多数主流浏览器的支持,但你无法解释那里的每个浏览器和其他客户端。从粗略看一下用户提供的注释,有时甚至需要服务器端配置才能工作。

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

我不会用它。太多可能为实际收益带来麻烦。

答案 2 :(得分:0)

浏览器不支持

PUT,并且通常不会将其用于交互式HTML表单。

答案 3 :(得分:0)

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