// +---------------------------------------------------------------------- namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; /** * 上传文件-控制器 * @author laravel开发员 * @since 2020/11/11 * Class UploadController * @package App\Http\Controllers */ class UploadController extends Backend { /** * 上传图片 * @param Request $request 网络请求 * @return array * @author laravel开发员 * @since 2020/11/11 */ public function uploadImage(Request $request) { // 上传单图统一调取方法 $result = upload_image($request, 'file'); if (!$result['success']) { $message = isset($result['message'])?$result['message']:$result['msg']; return message($message, false); } // 文件路径 $file_path = $result['data']['img_path']; if (!$file_path) { return message("文件上传失败", false); } // 网络域名拼接 if ($file_path && strpos($file_path, IMG_URL) === false) { $file_path = get_image_url($file_path, false); } // 返回结果 return message(MESSAGE_OK, true, ['url'=> $file_path, 'path'=> $result['data']['img_path']]); } /** * 上传文件(单个上传) * @param Request $request * @since 2020/11/11 * @author laravel开发员 */ public function uploadFile(Request $request) { $result = upload_file($request); if (!$result['success']) { return message(MESSAGE_FAILED, false, $result['message']); } // 文件路径 $file_path = $result['data']['file_path']; if (!$file_path) { return message("文件上传失败"); } // 网络域名拼接 if ($file_path && strpos($file_path, IMG_URL) === false) { $file_path = get_image_url($file_path, false); } // 返回结果 return message(MESSAGE_OK, true, ['url'=> $file_path, 'path'=> $result['data']['file_path']]); } /** * 图片上传 * @return array */ public function uploadBase64() { $base64 = request()->post('base64',''); $uuid = request()->post('uuid', ''); if ($base64) { $fileDir = ATTACHMENT_PATH . '/images/base64/' . date('Ymd'); // 检测文件路径是否存在,不存在则创建 if (!file_exists($fileDir)) { mkdir($fileDir, 0777, true); } $fileName = 'image_'.md5($uuid? $uuid : $base64) . '.jpeg'; $base64 = str_replace('data:image/jpeg;base64,','',$base64); $driver = \App\Services\ConfigService::make()->getConfigByCode('file_upload_driver','local'); if($driver == 'qiniu') { $filePath = str_replace(ATTACHMENT_PATH, '', $fileDir) . '/' . $fileName; if($path = \App\Services\QiniuService::make()->uploadBase64($filePath, base64_decode($base64))){ return message(MESSAGE_OK, true, ['url'=>get_image_url($path),'path'=>$path]); } }else{ file_put_contents($fileDir.'/'.$fileName, base64_decode($base64)); if(file_exists($fileDir.'/'.$fileName)){ $filePath = str_replace(ATTACHMENT_PATH, '', $fileDir) . '/' . $fileName; return message(MESSAGE_OK, true, ['url'=>get_image_url($filePath, false),'path'=>$filePath]); } } } return message(MESSAGE_FAILED, false); } }