迈出脚步
体验世界

Laravel 上传文件

1、配置conf/filesystems.php

     's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
            'endpoint' => env('AWS_ENDPOINT'),
        ],
        'uploads' => [
            'driver' => 'local',
            //'root' => storage_path('app/uploads'),
            'root' => public_path('uploads/'.date('Ymd')),
        ],

添加upload选项,drivel为local表示上传到本地,也可选择上面的s3,表示上传到配置的aws中

2、blade模板里面

注意需要将 enctype=”multipart/form-data” 加入到form里面。

<form action="{{url('submit')}}" class="form-horizontal" method="post" enctype="multipart/form-data">
   @csrf
<input type="file" name="img">
</form>

3、Controller里面

if($file = $request->file('img')){
  if ($file->isValid()){
     //原文件名
     $originalName = $file->getClientOriginalName();
     //扩展名
     $ext = $file->getClientOriginalExtension();
     //MimeType
     $type = $file->getClientMimeType();
     //临时绝对路径
     $realPath = $file->getRealPath();
     $filename = $input['name'].'.'.$ext;
     $bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath));
  }
}

然后根据bool是否上传成功,来进行下一步操作

if($bool){
   ......
}

赞(0) 喜欢我
未经允许不得转载:王威 » Laravel 上传文件
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏