Laravel上传文件的两种方法

第一种

//判断文件内容
            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框架一:原理机制篇 Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特...
    Mr_Z_Heng阅读 3,734评论 0 13
  • 对于PHPer的开发来说,经常使用laravel框架的,只要是基于linux上的开发,命令就显得很重要了。下面是自...
    wandx阅读 690评论 0 0
  • 文章分类 后台文章分类列表页模板导的详细步骤建立数据表blog_category,并添加相应的文章字段使用php ...
    JoyceZhao阅读 1,764评论 0 14
  • 一、框架概述 课程概述 laravel 4天(之前TP框架还是很大的区别)(国外框架) 在线教育平台 6天(lar...
    大大的世界小小的梦想_97ef阅读 1,360评论 0 2
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,916评论 0 5