FileNotFoundException 即使它存在于 Laravel
FileNotFoundException even if it exists in Laravel
在 laravel 中,我制作了一个上传文件的应用程序,用户可以检索该文件。
但是我每次点击上传都会出现这个错误。
FileNotFoundException in FilesystemAdapter.php line 91:
/storage/ap/payments/98AcresResort_25.pdf
我的控制器代码是这样的:
$filePath = "/storage/ap/payments/".$payment->payment_image;
$file = storage::disk('public')->get($filePath);
我的文件位于 /public/storage/ap/payments/filename.pdf
我试过了php artisan storage:link
有人可以提出任何解决方案吗?
你应该试试这个:
请运行 下面的命令在 public foler 中创建存储文件夹:
php artisan storage:link
$filePath = public_path("storage/ap/payments/".$payment->payment_image);
由于您的文件位于此位置/your-app/public/storage/ap/payments/filename.pdf
您需要添加一个磁盘。
在文件中config/filesystems.php
添加磁盘
'disks' => [
'web' => [
'driver' => 'local',
'root' => public_path(),
],
那你就可以这样使用了
$filePath = "storage/ap/payments/".$payment->payment_image;
$file = Storage::disk('web')->get($filePath);
它将寻找位置
/your-app/public/storage/ap/payments/filename.pdf"
但我怀疑您的文件 /public/storage/ap/payments/filename.pdf
也在 /storage
文件夹中并且您正在通过符号链接工作。正确的方法是使用 app 而不是 ap 并像这样使用 public
磁盘 Storage::disk('public')->path('payments/filename.pdf')
更好的是,由于它是一种付款方式,您可能不希望文件 public 并且所有人都可以访问。在这种情况下,您可以使用磁盘 local
并按要求提供文件。但这可能是更高级的东西。
在 laravel 中,我制作了一个上传文件的应用程序,用户可以检索该文件。
但是我每次点击上传都会出现这个错误。
FileNotFoundException in FilesystemAdapter.php line 91:
/storage/ap/payments/98AcresResort_25.pdf
我的控制器代码是这样的:
$filePath = "/storage/ap/payments/".$payment->payment_image;
$file = storage::disk('public')->get($filePath);
我的文件位于 /public/storage/ap/payments/filename.pdf
我试过了php artisan storage:link
有人可以提出任何解决方案吗?
你应该试试这个:
请运行 下面的命令在 public foler 中创建存储文件夹:
php artisan storage:link
$filePath = public_path("storage/ap/payments/".$payment->payment_image);
由于您的文件位于此位置/your-app/public/storage/ap/payments/filename.pdf
您需要添加一个磁盘。
在文件中config/filesystems.php
添加磁盘
'disks' => [
'web' => [
'driver' => 'local',
'root' => public_path(),
],
那你就可以这样使用了
$filePath = "storage/ap/payments/".$payment->payment_image;
$file = Storage::disk('web')->get($filePath);
它将寻找位置
/your-app/public/storage/ap/payments/filename.pdf"
但我怀疑您的文件 /public/storage/ap/payments/filename.pdf
也在 /storage
文件夹中并且您正在通过符号链接工作。正确的方法是使用 app 而不是 ap 并像这样使用 public
磁盘 Storage::disk('public')->path('payments/filename.pdf')
更好的是,由于它是一种付款方式,您可能不希望文件 public 并且所有人都可以访问。在这种情况下,您可以使用磁盘 local
并按要求提供文件。但这可能是更高级的东西。