首页 > 解决方案 > 文件不存储

问题描述

文件上传时,我创建了目录,没有错误,但图片不存储;我只看到空文件夹。

我知道我错过了一些愚蠢的东西,但我看不出到底是什么

控制器.php

 if($request->hasFile('picture')){
     //Create a directory if doesn't exist
     $dir = 'storage/images/students/'.$campus.'/'.$program.'/'.$group.'/';
     if (!File::isDirectory(public_path($dir))){
             File::makeDirectory(public_path($dir), 0775, true, true);}

     $path       = 'images/students/'.$campus.'/'.$program.'/'.$group;
     $picture    = $request->file('picture');
     $filename   = $request->id.'.'.$picture->getClientOriginalExtension();

     $public_path = $request->file('picture')->storeAs($path, $filename,'public');
 }

文件系统.php

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

文档页面

标签: phplaravel

解决方案


更新文件系统的配置和控制器代码,如下所示

文件系统.php

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

控制器.php

if($request->hasFile('picture')){
    //Create a directory if doesn't exist
    $dir = 'storage/images/students/'.$campus.'/'.$program.'/'.$group;
    if (!File::isDirectory(public_path($dir))) {
        File::makeDirectory(public_path($dir), 0775, true, true);
    }
    $picture    = $request->file('picture');
    $filepath   = $dir . '/' . $request->hanson_id.'.'.$picture->getClientOriginalExtension();

    return Storage::disk('public')->put($filepath, $picture));
}

推荐阅读