Laravel上传文件的两种方法

2019-05-12  本文已影响0人  IT行者q

第一种

//判断文件内容
            if($request -> hasFile('avatar') && $request -> file('avatar') -> isValid()){
                //文件扩展名
                $file['ext'] = $request -> avatar -> extension();
                //文件的路径
                $file['path'] = $request -> avatar -> path();
                //文件mime
                $file['mine'] = $request -> avatar -> getMimeType();
                //原始文件名
                $file['originName'] = $request -> avatar -> getClientOriginalName();
                //文件尺寸
                $file['size'] = $request -> avatar -> getClientSize();

                $file['uploadName'] = sha1($file['originName'].time().rand(1000, 9999)). '.'. $file['ext'];
                $request -> avatar -> move('./uploads/', $file['uploadName']);

                //获取所有数据
                $data = $request -> all();
                $data['avatar'] = './upload/'.$file['uploadName'];
                $res = MemberModel::create($data);
                dd($res);

            }else {
                $message = $request -> avatar -> getErrorMessage();
                dd($message);
            }

第二种

首先执行php artisan storage:link 生成公共磁盘

//对于上传文件的处理
        //1、判断是否有文件上传成功
        if($request -> hasFile('file') && $request -> file('file') -> isValid()){
            //2、重命名文件
            $filename = sha1($request -> file('file') -> getClientOriginalName() . time() . rand(1000,9999)) . '.' . $request -> file('file') -> getClientOriginalExtension();
            //3、保存上传文件(获取临时文件的路径)
            Storage::disk('public') -> put($filename,file_get_contents($request -> file('file') ->path()));
            //4、给ajax一个响应应答
            return response() -> json([
                'errorCode'         =>  '0',
                'message'           =>  '文件上传成功!',
                'path'              =>  '/storage/' . $filename
            ]);
        }else{
            //4、给ajax一个响应应答
            return response() -> json([
                'errorCode'         =>  '1',
                'message'           =>  $request -> file('file') -> getErrorMessage(),
            ]);
        }

第三种
用laravel的扩展类库上传到七牛

上一篇下一篇

猜你喜欢

热点阅读