美文网首页
Laravel上传文件的两种方法

Laravel上传文件的两种方法

作者: IT行者q | 来源:发表于2019-05-12 17:37 被阅读0次

    第一种

    //判断文件内容
                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的扩展类库上传到七牛

    相关文章

      网友评论

          本文标题:Laravel上传文件的两种方法

          本文链接:https://www.haomeiwen.com/subject/enocaqtx.html