Laravel文件图片上传

本文介绍了一个图片上传功能的具体实现步骤,包括验证图片格式与大小、检查临时文件上传状态及最终反馈上传结果等环节。该过程使用了 Laravel 框架,并通过 Validator 类进行数据验证。

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

思路:
1.验证是不是图片,大小有没有超过限制;
2.临时文件是否上传成功;
3.返回成功或者失败信息.

代码:

use Storage;
use Validator;
    public function uploadImage(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'image' => 'required|image|max:300',
        ]);
        if ($validator->fails()) {
            $first_error = $validator->errors()->first();
            return $this->outPutJson('', 201, $first_error);
        }

        $file = $request->file('image');
        // 文件是否上传成功
        if ($file->isValid()) {
            // 获取文件相关信息
            $originalName = $file->getClientOriginalName(); // 文件原名
            $ext = $file->getClientOriginalExtension(); // 扩展名
            $realPath = $file->getRealPath(); //临时文件的绝对路径
            $type = $file->getClientMimeType(); // audio/wave
            // 上传文件
            $filename = date('YmdH_i_s') . '_' . uniqid() . '.' . $ext;
            $save_path = 'recordings';

            //保存文档到本地
            $file_path = $file->storeAs($save_path, $filename, 'public');
            $local_real_path = storage_path('app/public/' . $file_path); #存储的真实物理路径
            #网络访问地址
            $access_url = Storage::disk('public')->url($save_path . '/' . $filename);
            return $this->outPutJson($access_url);
        }
        return $this->outPutJson('', 500, '文件上传失败!');
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值