如何访问存储文件

问题描述

如何访问存储中的文件

文件位置

storage/uploads/documentUpload/3_1620028799.PNG

记住PHP artisan storage link 将不起作用,因为文件不在 app/public 文件夹中。

文件 URL http://example.com/storage/uploads/logo/logo.png 404 错误。 有什么办法可以在htaccess中覆盖吗?

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.PHP [L]
</IfModule>

解决方法

您可以在 config/filesystems.php 中创建新磁盘,例如上传

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

并在 config/filesystems.php 文件的末尾,为上传文件夹添加一个新的符号链接

'links' => [
    public_path('storage') => storage_path('app/public'),public_path('storage/uploads')  => storage_path('app/uploads'),// Add this
],

然后运行php artisan storage:link

每当你想获取文件的 url 时,只需运行

\Storage::disk('uploads')->url('documentUpload/3_1620028799.PNG');