validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', 'bucket' => 'required|string', // 验证桶名 ]); // 获取桶名 $bucket = $request->input('bucket'); // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传项目图片 */ public function uploadProjectCate(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'project-image'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传用户图片 */ public function uploadUserImage(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'user-image'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传用户其他图片 */ public function uploadUserOther(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'user-other'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传技师资质图片 */ public function uploadTechQualification(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'te-qualification-image'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传技师形象照、技师工作照图片 */ public function uploadTechnicianPhoto(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'te-photo-image'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传技师其他图片 */ public function uploadTechOther(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'te-other-image'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } /** * 上传其他图片 */ public function uploadOther(Request $request) { // 验证请求 $request->validate([ 'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048', ]); // 获取桶名 $bucket = 'other-image'; // 上传文件到指定的 S3 桶 $path = $request->file('file')->store('uploads', $bucket); // 获取文件名 $filename = basename($path); // 生成文件的 URL $url = Storage::disk($bucket)->url($path); // 返回文件名和 URL return response()->json([ 'filename' => $filename, 'url' => $url, // 返回文件的 URL ], 201); } public function download(Request $request) { // 获取桶名 $bucket = $request->input('bucket'); $filename = $request->input('filename'); // 从指定的 S3 桶获取文件 $filePath = 'uploads/' . $filename; if (!Storage::disk($bucket)->exists($filePath)) { return response()->json(['message' => 'File not found.'], 404); } // 返回文件下载响应 return Storage::disk($bucket)->download($filePath); } }