在PUT路由Laravel中访问文件

时间:2015-02-05 14:49:58

标签: php curl laravel-4 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()但是没有用。

curlCLI中使用PHP发送PUT请求并随后在PHP中接收这些请求的方法是什么?我一直在努力处理这一种请求类型。

1 个答案:

答案 0 :(得分:0)

正如@lukasgeiter在上面的评论中正确说的那样: 这是解决方案:

    use Request;   // needed in Laravel 5  
    $request = Request::instance();    // fetch the request instance
    $content = $request->getContent();   // get the raw content

我已经验证了内容的长度,并且它与PUT的文件匹配。