model = new \app\model\Files(); } function list(Request $request) { return view('', [ ]); } function feupload(Request $request): Response { $user = ['id'=>admin_id()]; $savePath = $request->post('savePath','files'); $validate = Validate::rule('savePath', 'alphaNum'); $data = ['savePath' => $savePath]; if (!$validate->check($data)) { return $this->fail( '参数错误:'.$validate->getError()); } $savePath = trim($savePath,'/'); $savePath = 'upload/'.$savePath.'/'.$user['id']; $maxSize = 1024*1024*100; //100M //多文件上传 $files = $request->file(); try { $result = Storage::adapter('public') ->path($savePath) ->size(1024*1024*10) ->extYes(['image/jpeg','image/png']) ->uploads($files,0,$maxSize,false); $save_datas = []; foreach($result as $k=>$fileinfo){ $save_datas[] = [ 'user_id' => $user['id'], 'title' => $fileinfo->origin_name, 'path' => $fileinfo->file_name, 'size' => $fileinfo->size, 'mime_type' => $fileinfo->mime_type, 'extension' => $fileinfo->extension, 'height' => $fileinfo->file_height, 'width' => $fileinfo->file_width, 'sha1' => sha1_file(public_path($fileinfo->file_name)), 'use_count' => 0, ]; } \app\model\Files::saveAll($save_datas); return $this->success(__('successful'),[ 'link' => $result[0]['path'], ]); }catch (\Exception $e){ return $this->fail($e->getMessage()); } } function upload(Request $request): Response { log_alert(0); $savePath = $request->post('savePath','files'); $validate = Validate::rule('savePath', 'alphaNum'); $data = ['savePath' => $savePath]; log_alert($data); if (!$validate->check($data)) { cp($validate->getError()); return $this->fail( '参数错误:'.$validate->getError()); } log_alert('1'); $file = current($request->file()); if (!$file || !$file->isValid()) { return $this->fail('未找到文件'); } log_alert('2'); try { $data = $this->base($request, $savePath); } catch (\Exception $e) { log_alert($e->getMessage()); //throw $th; } log_alert('3'); //cp($data); return $this->success( '上传成功', [ 'url' => $data['realpath'], 'name' => $data['name'], 'fullurl' => $data['url'], 'size' => $data['size'], 'url1' => $data['url'], ]); } /** * 获取上传数据 * @param Request $request * @param $savePath 保存位置 * @return array * @throws \Exception */ protected function base(Request $request, $savePath): array { $user = ['id'=>admin_id()]; // 适配器 local默认是存储在runtime目录下 public默认是存储在public目录下 // 可访问的静态文件建议public // 默认适配器是local //Storage::adapter('public'); $savePath = trim($savePath,'/'); $savePath = 'upload/'.$savePath; cp($savePath); $file = current($request->file()); cp($file); $mimetype = explode(',',Config('site.upload_mimetype')); $maxsize = Config('site.upload_maxsize')*1024*1024; $result = Storage::adapter('public') ->path($savePath) ->size($maxsize) ->extYes($mimetype) ->upload($file); cp($result); $save_datas = [ 'user_id' => $user['id'], 'category' => 'default', 'title' => $result->origin_name, 'path' => $result->file_name, 'size' => $result->size, 'mime_type' => $result->mime_type, 'extension' => $result->extension, 'height' => $result->file_height, 'width' => $result->file_width, 'sha1' => sha1_file(public_path($result->file_name)), 'use_count' => 0, ]; (new \app\model\Files)->save($save_datas); return [ 'code' => 0, 'url' => $result->file_url, 'name' => $result->origin_name, 'realpath' => '/'.$result->file_name, 'size' => $result->size, 'mime_type' => $result->mime_type, 'image_with'=> $result->file_width, 'image_height' => $result->file_height, 'ext' => $result->extension, ]; } }