0

这就是我将文件上传到 laravel 项目中所做的工作。

if($request->file()) {
     $fileName = time().'_'.$request->file('imageFile')->getClientOriginalName();
     $filePath = $request->file('imageFile')->storeAs('products', $fileName, 'public');
     $product->featured_image = '/storage/' . $filePath;
 }

公共磁盘

'public' => [
      'driver' => 'local',
      'root' => storage_path('app/public'),
      'url' => env('APP_URL').'/storage',
      'visibility' => 'public',
 ],

该文件上传到 app/public/products 内的存储文件夹中,但是当我尝试检索显示 404 错误的文件时。即使我已经创建了与公用文件夹的符号链接但无法正常工作。我不知道为什么,但文件没有显示在公用文件夹中。文件仅在存储文件夹中上传项目级别或私有文件夹。我如何通过网络浏览器访问该文件。

4

2 回答 2

1

首先,您创建了符号链接

php aritsan storage:link

这将在公用文件夹中创建快捷方式存储文件夹

所以你可以访问网址

asset('storage/products/filename')

在您的情况下,您需要在存储时更改路径

  $product->featured_image =  $fileName;

所以在访问时

 asset('storage/products/'.$product->featured_image )

参考:https ://laravel.com/docs/8.x/filesystem#the-public-disk

于 2021-06-03T12:45:16.393 回答
0

根据文档-“要使这些文件可以从 Web 访问,您应该创建一个从 public/storage 到 storage/app/public 的符号链接”

php artisan storage:link

https://laravel.com/docs/8.x/filesystem

于 2021-06-03T12:45:32.573 回答