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

Mar*_*aio 6 php file-upload http-put

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

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

  2. 我应该写什么HTML来让浏览器通过PUT请求调用服务器?我的意思是,我需要写一个FORMINPUT文件属性,只是替换属性method="POST"method="PUT"

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

小智 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,Apache可以自行保存上传的文件.)


Pek*_*ica 1

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

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

我不会用它。可能带来的麻烦太多,实际收益却很少。