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); } } }