繁体   English   中英

Laravel 存储链接不与公共链接

[英]Laravel storage link doesnt link with public

尝试将我的文件上传到存储,并将其与我的公用文件夹链接。

我用了

php artisan storage:link

然后,我上传如下照片;

        $filename = uniqid().".".$file->getClientOriginalExtension();
        $filePath = 'uploads/announcement';
        Storage::disk('public')->putFileAs($filePath, $file, $filename, ['visibility' => 'public']);
        $announcement->photo = $filename ?? $announcement->filename;

但是当我上传文件时,我的 /public/storage 文件夹是空的。 它出什么问题了?

我的文件系统.php 在下面;

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

这就是我这样做的方式(在 livewire 中,但 storePubliclyAs 不是 livewire)

if($this->image != null){
            $imageName = time().'.'.$this->image->extension(); 
            $company->image= $imageName;       
            // on upload l image dans le folder 
            $this->image->storePubliclyAs('companylogos',$imageName);
        }   

companylogos 是 (storage/app) 中的文件夹名称

我和你第一次有同样的问题,你需要确保你的文件夹是链接的,因为你需要在文件夹上看到一个小标志,比如一个链接标志,这意味着两个文件夹是同步的(链接的),错误是创建两个文件并尝试链接它们:不,您必须先创建 storage/app/companylogos 文件夹,然后使用 artisan 链接 php artisan storage:link

当然你需要在配置文件系统中准备好你的文件,我就是这样做的

'links' => [
        public_path('storage') => storage_path('app/public'),


        
        public_path('profilecv') => storage_path('app/profilecv'),


        public_path('companylogos') => storage_path('app/companylogos'),

        


    ],

我认为您必须更改文件系统

filesystem.php 在下面;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM