【发布时间】:2015-02-05 14:49:57
【问题描述】:
我正在构建一个 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 中接收它们的方法是什么?我一直在为这种请求类型而苦恼。
【问题讨论】:
-
您是否尝试过通过
Input::file访问您的文件? laravel.com/docs/4.2/requests#files -
这不是上传文件吗??但我想访问请求内容中的文件。
-
您的文件必须先上传到服务器,然后您才能从请求中访问它。它们保存在 tmp 文件夹中,
$POST['file']或Input::file是您可以访问它的一种方式。 -
但我要求的是我想要请求的
body中的文件。 -
试试
$blob = Request::getContent()