laravel用ajax上传图片附件到七牛云
需要用到ajaxfileupload插件:
<script type='text/javascript' src='{{ asset('js/ajaxfileupload.js') }}'></script>view视图:
<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>
ajax:
$('input[type="file"]').change(function(){ //点击input框选择图片时触发
$.ajaxFileUpload({
url:'/Lecturer_Admin/lecturer/upload-logo',
secureuri:false,
fileElementId:'filepath',//file标签的id
dataType: 'json',//返回数据的类型
success: function (data) {//把图片替换
console.log(data);
}
});
});controller:
<?php
namespace App\Http\Controllers\Lecturer_Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
class uploadLogoController extends Controller
{
//执行修改头像
public function index(Request $request)
{
$file = $request->file('file');
// var_dump($file);
$temp = explode(".", $file); //获取文件名按“.”进行分割
$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 = $file;
// 上传到七牛后保存的文件名
$key = time().rand(999,9999).".$extension";
// 初始化 UploadManager 对象并进行文件的上传
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
}
}