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
