【问题标题】:FileNotFoundException even if it exists in LaravelFileNotFoundException 即使它存在于 Laravel
【发布时间】:2019-07-24 11:44:57
【问题描述】:

在 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

有人可以提出任何解决方案吗?

【问题讨论】:

  • 你有没有运行过这个命令php artisan storage:link
  • 可能是因为缓存?
  • 默认情况下storage::disk('public')会在路径前加上/your/path/to/project/storage/app/public/
  • 也许这只是一个错字,因为你有/storage/ap/,但默认是/storage/app/
  • 如果您没有更改默认存储磁盘,则默认情况下不会将其上传到该特定磁盘。所以你可以尝试只使用 Storage::get($filePath);这都是在 config/filesystems.php 中指定的 Storage::disk('public') 不是选择公用文件夹的方法。这是一种选择“公共”磁盘的方法。路径有点不同所以如果你没有指定你的应用程序默认使用公共,它可能会在“本地”磁盘上。编辑:@cbaconnier 关于如何添加具有特定文件路径的磁盘的答案详细信息。

标签: laravel laravel-5 laravel-5.4 laravel-filesystem


【解决方案1】:

由于你的文件位于/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')

更好的是,由于它是一种付款方式,您可能不希望该文件被公开并可供所有人访问。在这种情况下,您可以使用磁盘local 并根据请求提供文件。但这可能是更高级的东西。

【讨论】:

  • 我试过这个。我添加了磁盘并尝试了此代码。仍然,不起作用。现在我收到一个错误,InvalidArgumentException in FilesystemManager.php line 121: Driver [] is not supported..
  • @suganthansivananthan 你的文件看起来像这样:pastebin.com/DPijxM2G 对吗?那么,不妨试试php artisan config:clear
【解决方案2】:

你应该试试这个:

请运行以下命令在公共文件夹中创建存储文件夹:

php artisan storage:link


$filePath = public_path("storage/ap/payments/".$payment->payment_image);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2018-12-30
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多