| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | <?phpnamespace App\Http\Controllers\V1;use Illuminate\Http\Request;//use App\Helper\AttachmentHelper;use App\Services\Base\ErrorCode;use App\Services\AttachmentServer;use Illuminate\Support\Facades\Validator;class AttachmentController extends Controller{    //use AttachmentHelper;    /**     * * 可能出现的错误代码:     *    200     SAVE_USER_FAILED                保存用户数据失败     *    201     ATTACHMENT_MKDIR_FAILED         创建附件目录失败     *    202     ATTACHMENT_UPLOAD_INVALID       上传附件文件无效     *    203     ATTACHMENT_SAVE_FAILED          保存附件失败     *    204     ATTACHMENT_MOVE_FAILED          移动附件失败     *    205     ATTACHMENT_DELETE_FAILED        删除附件文件失败     *    206     ATTACHMENT_RECORD_DELETE_FAILED 删除附件记录失败     *    1000    CLIENT_WRONG_PARAMS             传入参数不正确     *    1101    INCORRECT_VERIFY_CODE           输入验证码错误     *    1105    USER_DOES_NOT_EXIST             用户不存在     *    1200    ATTACHMENT_UPLOAD_FAILED        附件上传失败     *    1201    ATTACHMENT_SIZE_EXCEEDED        附件大小超过限制     *    1202    ATTACHMENT_MIME_NOT_ALLOWED     附件类型不允许     *    1203    ATTACHMENT_NOT_EXIST            附件不存在     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function upload(Request $request)    {        try {            $validator = Validator::make($request->all(),                [                    'tag' => 'required|alpha_dash',                ], [                    'tag.required' => 'tag必填',                    'tag.alpha_dash' => 'tag只能为字母数字中/下划线',                ]            );            if ($validator->fails()) {                throw new \Exception($validator->messages()->first());            }            $result = (new AttachmentServer())->uploadAttachment($request, $request->post('file'), $request->post('tag'), 10 * 1024 * 1024, [                'image/jpeg',                'image/png',                'image/gif',                'video/mp4',            ]);        } catch (\Exception $exception) {            return $this->error($exception->getMessage());        }        return $this->success(['file' => $result], 0, trans("api.UPLOAD_SUCCESS"));    }    /**     * @param Request $request     * @return \Illuminate\Http\JsonResponse     * parse_url($url);     * array (            'scheme' => 'https',            'host'   => 'zhengda.oss-cn-chengdu.aliyuncs.com',            'path'   => '/api_avatar/2022-07/14/1271657787068220714.jpeg',       )     */    public function delete(Request $request)    {        $picUrl = $request->pic_url;        if(empty($picUrl)){            return $this->error('路径必填!');        }        $arr  = parse_url($picUrl);        $path = substr($arr['path'], 1);        $result = (new AttachmentServer())->deleteAttachment($path);        if ($result) {            return $this->success([]);        } else {            return $this->error('',ErrorCode::ATTACHMENT_DELETE_FAILED);        }    }}
 |