我正在构建一个REST
API端点,如下所示:(在Laravel 4.2
)
PUT /upload/{name}
以下是routes.php中的Route
,它可以路由PUT
请求。
Route::put('/upload/{name}', 'UploadController@upload')
->where('name', '[a-zA-Z0-9]+');
现在,此请求的内容必须包含要保存的文件。我正在使用以下curl
请求对端点进行初步测试。
curl -X PUT localhost/upload/filename -F filedata=@test.file
这就是如何在PHP
中读取数据:
$blob = file_get_contents('php://input', 'r' );
这不是给我实际的文件而是给我整个HTTP请求作为原始文本(预期)。我甚至试过parse_str()
但是没有用。
在curl
和CLI
中使用PHP
发送PUT请求并随后在PHP
中接收这些请求的方法是什么?我一直在努力处理这一种请求类型。
答案 0 :(得分:0)
正如@lukasgeiter在上面的评论中正确说的那样: 这是解决方案:
use Request; // needed in Laravel 5
$request = Request::instance(); // fetch the request instance
$content = $request->getContent(); // get the raw content
我已经验证了内容的长度,并且它与PUT
的文件匹配。