/**
* 单文件上传接口
* @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);
}