Laravel 5.2使用文件系统上传文件

时间:2016-05-05 16:29:21

标签: php laravel filesystems

我在laravels文件系统上传方面遇到了一些麻烦。

当我尝试执行此代码时

Storage::disk('public')->put(
            $img->getClientOriginalName(),
            file_get_contents($img->getRealPath())
        );

在公共文件夹中没有任何本地发生,我甚至检查文件是否存在并返回true

dd(Storage::disk('public')->exists($img->getClientOriginalName()));

现在我正在使用$img->move方法,它可以按我的意愿运行。

磁盘也在filesystems.php中配置

 'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'visibility' => 'public',
        ],

我对此感到困惑,因为几个星期前它在另一个项目中应该有效。

2 个答案:

答案 0 :(得分:1)

我现在已经在Claudio的帮助下使用'root' => public_path('')解决了这个问题。

答案 1 :(得分:0)

这应该有效:

if ($request->hasFile('myFile'))
{
    $fileExtension = strtolower($request->file('myFile')->getClientOriginalExtension());
    $newFilename = str_random(20) . '.' . $fileExtension;
    $storagePath = storage_path() . '/app/uploads/';
    $request->file('myFile')->move($storagePath, $newFilename);
}