laravel上传的图片怎么存放到七牛云
我这里用的是七牛云的私有云。
.env文件配置:
#七牛云存储配置 ACCESS_KEY=QLvyq7uQJ8ZC*************************** SECRET_KEY=nFa2Z9BCqU4b*************************** HUB=file QINIU_DOMAIN=****sxdey.bkt.clouddn.com BUCKET=test
<?php namespace App\Http\Controllers\Lecturer_Admin; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Qiniu\Auth; use Qiniu\Storage\UploadManager; class uploadLogoController extends Controller { //执行修改头像 public function index(Request $request) { $temp = explode(".", $_FILES["file"]["name"]); //获取文件名按“.”进行分割 $extension = end($temp); // 获取文件后缀名 // 需要填写你的 Access Key 和 Secret Key $accessKey = env('ACCESS_KEY'); $secretKey = env('SECRET_KEY'); // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); // 要上传的空间 $bucket = 'test'; // 生成上传 Token $token = $auth->uploadToken($bucket ); // 要上传文件的本地路径 $filePath = $_FILES["file"]["tmp_name"]; // 上传到七牛后保存的文件名 $key = time().rand(999,9999).".$extension"; // 初始化 UploadManager 对象并进行文件的上传 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传 list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); echo "\n====> putFile result: \n"; if ($err !== null) { var_dump($err); } else { var_dump($ret); } } }
前端两种方式,form表单提交和ajax提交。
form表单:
<form action="/lecturer/upload-logo" method="post" enctype="multipart/form-data"> <div class="shangchuan_pic"> <div style="margin-top: 150px; padding-left:90px;" > <input type="file" name="file" id="file" ><br> </div> <p style="margin-top: 10px;">只支持JPG,PNG,GIF,大小不超过5M</p> </div> <div class="queding"> <button type="submit" name="submit" id="submit">确定</button> <button type="submit">取消</button> </div> </form> ajax方法: https://www.wangjingxian.cn/laravel/67.html