【发布时间】:2013-06-22 09:26:02
【问题描述】:
我正在尝试使用 HTTP PUT 上传文件。
读了一点之后,$_FILES 数组似乎只有 POST 和 multipart/form-data。使用 PUT 时,我需要手动读取 php://input 以获取数据。两种方法都不行。
我尝试了以下选项,如果您有任何提示,我将不胜感激:
curl --upload avatar.jpg http://api.test.com/user/dsadasdsa
curl -X PUT -F "filedata=@avatar.jpg" http://api.test.com/user/dsadasdsa
我的 PHP 文件正在尝试打印它但返回一个空字符串:
echo file_get_contents("php://input");
我开始认为这可能是一个 Nginx 问题,缺少 PUT DELETE 支持并安装了 nginx-extras 以及将以下内容添加到我的 nginx 配置中,但不幸的是这也无济于事。
root /var/www/;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access group:rw all:r;
【问题讨论】:
-
@Gordon - 谢谢。我知道那个页面,但它只告诉我在 PHP 端做什么(我已经在做)。并没有真正告诉我我在卷曲方面做错了什么。
-
另外,尝试运行手册中完全相同的代码只会创建一个空文件。所以我很确定我的 CURL 请求是错误的。
-
我也是从那里来的......我开始认为错误在于 Nginx 需要特定安装以支持 PUT/DELETE,我将尝试这样做。感谢您的帮助!