Laravel 多图片上传

Laravel + htmljs 图片上传实现

前端代码




    
    
    多图片上传(最多5张)
    



多图片上传(最多5张)

 Laravel 后端代码

public function upload(Request $request)
    {
        // 检查请求方法是否为 POST
        if (!$request->isMethod('post')) {
            return response()->json([
                'code' => 400,
                'msg' => '非法请求',
            ], 400);
        }

        // 获取上传的文件
        $files = $request->file('images');


        // 检查是否有文件上传
        if (empty($files)) {
            return response()->json([
                'code' => 400,
                'msg' => '未上传任何文件',
            ], 400);
        }

        // 如果上传的是单个文件,转换为数组形式统一处理
        if (!is_array($files)) {
            $files = [$files];
        }

        // 定义存储路径
        $uploadPaths = [];

        // 遍历文件并保存
        foreach ($files as $file) {
            // 验证文件是否有效
            if (!$file->isValid()) {
                continue; // 跳过无效文件
            }

            // 保存文件到指定目录(按日期分类)
            $path = Storage::disk('public')->putFile(date('Ymd'), $file); // 保存到 uploads 磁盘的日期目录下
            if ($path) {
                $uploadPaths[] = $path; // 记录保存路径
            }
        }




        // 检查是否有文件成功保存
        if (empty($uploadPaths)) {
            return response()->json([
                'code' => 400,
                'msg' => '文件上传失败,请检查文件格式或大小',
            ], 400);
        }

        // 返回成功响应
        return response()->json([
            'code' => 0,
            'msg' => '上传成功',
            'data' => $uploadPaths,
        ]);
    }

你可能感兴趣的:(Html,Laravel,laravel,javascript,前端)