访问 PUT 路径中的文件 Laravel
Accessing file in PUT route Laravel
我正在构建一个 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()
但没有成功。
如何在CLI
和PHP
中使用curl
发送PUT请求并随后在PHP
中接收它们?我一直在为这种请求类型而苦苦挣扎。
正如@lukasgeiter 在上面的评论中正确指出的那样:
这是解决方案:
use Request; // needed in Laravel 5
$request = Request::instance(); // fetch the request instance
$content = $request->getContent(); // get the raw content
我已经验证了内容的长度,它与 PUT
.
的文件匹配
我正在构建一个 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()
但没有成功。
如何在CLI
和PHP
中使用curl
发送PUT请求并随后在PHP
中接收它们?我一直在为这种请求类型而苦苦挣扎。
正如@lukasgeiter 在上面的评论中正确指出的那样: 这是解决方案:
use Request; // needed in Laravel 5
$request = Request::instance(); // fetch the request instance
$content = $request->getContent(); // get the raw content
我已经验证了内容的长度,它与 PUT
.