laravel上传的图片怎么存放到七牛云

admin2023-01-181644

我这里用的是七牛云的私有云。

.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

网友评论