tp6 单图片上传和多图片上传

/**
 * 单文件上传接口
 * @param Request $request
 * @return \think\response\Json
 */
public function logo(Request $request): Json
{
    // 接收上传的类型
    $type = $request->post("type");
    // 接收文件上传
    $file = $request->file();
    // 设定文件上传的大小
    $fileSize = 1024*1024*2;
    // 验证文件上传的大小、后缀
    try {
        // 验证文件大小、后缀
        validate(['logo'=>'fileSize:'.$fileSize.'|fileExt:jpg,png'])
            ->check($file);
        $files = $request->file("logo");
        // 将图片保存至本地
        $saveName = \think\facade\Filesystem::putFile($type, $files);
        // 将文件上传的路径返回
        return success('uploads/' . $saveName);
    } catch (\think\exception\ValidateException $e) {
        return fail($e->getMessage());
    }
}




/**
 * 批量上传图片
 * @param Request $request
 * @return Json
*/
public function images(Request $request): Json
{
    // 接收上传的类型
    $type = $request->post("type", "goods");
    // 接收文件上传
    $file = $request->file("images");
    // 设定文件上传的大小
    $fileSize = 1024 * 1024 * 2;
    // 存储上传失败的信息
    $error = [];
    // 存储上传成功的信息
    $success = [];
    // 循环批量验证
    foreach ($file as $val) {
        // 捕获异常
        try {
            // 验证文件大小、后缀
            validate(['images' => 'fileSize:' . $fileSize . '|fileExt:jpg'])
                ->check(['images' => $val]);
            // 上传文件
            $saveName = \think\facade\Filesystem::putFile($type, $val);
            // 将成功后的路径保存到数组中
            $success = 'uploads/' . $saveName;
        } catch (\think\exception\ValidateException $e) {
            // 记录验证错误的失败信息
            $error= [
                'name' => $val->getOriginalName(),
                'msg' => $e->getMessage()
            ];
        }
    }
    // 组装返回数据的结果集
    $data = [
        'success' => $success,
        'error' => $error
    ];
    // 返回数据
    return success($data);
}
上一篇:PHP tp6 购物车的流程


下一篇:tp6封装jwt