【发布时间】:2011-05-23 17:42:34
【问题描述】:
我正在尝试使用Picasa Web Uploader API 将照片库上传到我的网站。我已经能够实现该按钮,在 Picasa 中对其进行设置并进行身份验证,但是在处理我的网站从 Picasa 收到的 POST 时,$_FILES 数组始终为空。
我查看了 Picasa 使用 Fiddler 发布的请求,并且能够确定每个文件多部分开头的 Content-Disposition 标头是 too long - Picasa 发送的标头包括我服务器上文件的完整路径,因此它最终远远超过 128 个字符:
Content-Disposition: form-data; name="http://localhost:50216/1f6b3b29edc6f9d8898ede07c1b10e27/image/415603f72f75af1a.jpg?size=640"; filename="DSC_0055.JPG"
似乎 PHP 只能处理最多 128 个字符的标题,如果标题太长,整个多部分部分将被丢弃。 (当我在 Fiddler 中减少此标头的长度并重新发布请求时,我的网站会收到 $_FILE 并成功处理。
我该如何解决这个问题?
- 我可以在某处设置配置设置以允许 PHP 处理长标头并接收 $_FILE 数组中的数据吗?
- 或者,除了 $_FILE 数组之外,我还能以其他方式访问缺少的多部分部分吗?
【问题讨论】:
-
不确定这是一个好还是坏的解决方案,但为什么不使用 tinyurl 之类的东西来缩短这些 url?
-
我同意最好减少该标头@yoda 中的 url 长度,但不幸的是我无法控制 Picasa 生成的 POST 请求..
标签: php http-headers multipartform-data picasa