laravel用ajax上传图片附件到七牛云

admin2023-01-183747

需要用到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);
        }

    }
}



网友评论