Sha*_*ali 5 php upload curl nginx put
我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)
我的PHP文件试图打印这个但返回一个空字符串:
echo file_get_contents("php://input");
Run Code Online (Sandbox Code Playgroud)
我开始认为这可能是一个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;
Run Code Online (Sandbox Code Playgroud)
小智 3
我有一些调试的想法。
做 avar_dump(file_get_contents('php://input'));而不是 echo。根据参考资料:
此函数可能返回布尔值 FALSE,但也可能返回计算结果为 FALSE 的非布尔值。请阅读有关布尔值的部分以获取更多信息。使用 === 运算符来测试该函数的返回值。
如果您得到bool(false)as 输出,则存在一些错误导致您无法阅读php://input- 很可能是 PHP 问题。如果您得到string(0) "",则(不再?)中什么都没有php://input,这更有可能是 nginx 问题。
另外,根据php://参考文献,您不能使用php://inputwith enctype="multipart/form-data"。你确定你不用那个吗?如果您更熟悉的话,您也可以尝试使用 HTML 文件。
默认情况下,您还可以检查错误日志/var/log/nginx/error.log。另外,检查 HTTP 响应代码。是200吗?如果没有,它是有用的代码吗?
| 归档时间: |
|
| 查看次数: |
12451 次 |
| 最近记录: |