laravel 多图上传及图片的存储

本文介绍了在 Laravel 框架中如何进行多图上传操作,并详细讲解了文件磁盘配置,包括在filesystems.php中设置'public'磁盘,指定存储路径和URL。同时,通过创建软连接使得/public/storage/可以访问到/storage/app/public/目录,确保图片能正确存储和访问。最后,文中还提及了接收和存储图片的步骤,以及返回存储图片的URL的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.了解文件磁盘配置:

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

在filesystems.php文件中创建了一个名为 public的文件磁盘,使用的驱动为本地存储,'root’表示的是文件最终存储的目标路径是storage/app/public, ‘url’ 表示的是文件的url,'visibility’表示的是可见性
2.创建软连接,在项目的根目录运行如下命令:

php artisan storage:link

如果是线上代码,则需要在服务器中的项目根目录运行。
软连接的创建意味着项目的 …/public/storage/ 路径直接指向了 …/storage/app/public/ 目录
3.接收图片并存储,返回存储的图片的url

class UploadController extends Controller
{
    public function upload()
    {
        $imgs = [];
        if (request()->hasFile('file')){
            foreach (request()->file('file') as $file){
            //将图片存储到了 ../storage/app/public/product/ 路径下
                $path = $file->store('public/product');
                $path = str_replace('public','',$path);
                $imgs[]= asset('storage/'.$path);
            }
             return response()->json([
                    'errno'=>0,
                    'data'=>$imgs
                ]);
        }else{
            return response()->json([
                'info'=>'没有图片'
            ]);
        }
        //处理多图上传并返回数组
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值