0

如何获取位于 Storage 中的文件?

我建立了一条路线并将其定向到myCcontroller@myMethod. 方法如下

public function myMethod()
{
    $validPath = 'valid-path-inside-local-storage';
    $file = Storage::disk(env('STORAGE_TO_USE','local'))->get($validPath);
    return $file;
}

但我得到了胡言乱语,可能是原始数据。如果文件是图像,我如何让浏览器显示图像,或者如果文件是,我如何下载它a.xls

4

2 回答 2

1
    $validPath = 'valid-path-inside-local-storage';
    $mimeType = Storage::mimeType($validPath);
    $file = Storage::disk(env('STORAGE_TO_USE','local'))->get($validPath);
    return (new Response($file, 200))
        ->header('Content-Type', $mimeType);

我希望我没有错过任何东西。

于 2016-04-11T08:46:14.597 回答
0

为您的路线定义:

Route::get('docs/{file}', 'DocumentController@getDoc');

这是你的控制器

class DocumentController extends BaseController
{
    public function getDoc($file){
      $path = 'pathToDirectory/'.$file;
      if(Storage::disk('yourDisk')->exists($path)){
        $attachment = Storage::disk('yourDisk')->get($path);
        $type = Storage::disk('yourDisk')->mimeType($path);
        return Response::make($attachment, 200)->header("Content-Type", $type);
      }else{
        return Response::json('This file does not exists.');
      }
    }
}
于 2017-06-24T07:16:21.047 回答