Laravel 5.7-上传到公用文件夹

时间:2018-08-21 10:16:55

标签: laravel laravel-5

我知道这个问题已经发布了好几次了,但我不明白。

现在我使用:

 // photo upload
 $dir = strtolower(str_random(2));
 $image = $request->file('image')->store('products/'. $dir);

效果很好,我的文件上传到了:

storage/app/products/ds/HASH.jpg

但是它不是公共的,我看了文档,但是我不明白如何轻松地上传到公共文件夹。

我可以使用store函数吗?我想要同样的行为:文件名被散列,文件夹是动态创建的。

我尝试过:

Storage::setVisibility($image, 'public');

但是它不起作用(没有错误...)。

医生说要使用:

Storage::put('file.jpg', $contents, 'public');

但是如何填充$content变量?如何轻松地对文件名进行哈希处理?

1 个答案:

答案 0 :(得分:0)

我通常使用move函数,类似这样的方法应该起作用:

    $file = $request->file('file');

    $file_name = time() . $file->getClientOriginalName();                      

    $file_path = 'uploads/';

    $file->move($file_path, $file_name);

这会将您的文件移到public / uploads文件夹...而不是storage / app / public ...

您还可以通过类似的方式访问存储文件,但是为此,您必须添加用于访问文件的路径和方法

    return response()->file(storage_path(''));