Laravel 上传图片及多张图片到七牛云

1:打开文档运行官方SDK:composer require qiniu/php-sdk; 2:在app\Http目录下新建文件夹Helpers并创建文件qiuniu.php; 3:在qiniu.php中写入

<?php
// 引入鉴权类
use Qiniu\Auth;
// 引入上传类
use Qiniu\Storage\UploadManager;

function qiniu_upload($filePath)
{
    // 需要填写你的 Access Key 和 Secret Key
    $accessKey = '8qw4Vgq7MmycfixeI0UmDjWkGMQOT9y_IjaSsDMh';
    $secretKey = 'guzXcaqE0fY1PhcV20aNMn4_dr3O6aUf3A9zdkMO';
    // 构建鉴权对象
    $auth = new Auth($accessKey, $secretKey);
    // 要上传的空间
    $bucket = 'nottdote';
    // 生成上传 Token
    $token = $auth->uploadToken($bucket);
    // 上传到七牛后保存的文件名
    $key = basename($filePath);
    // 初始化 UploadManager 对象并进行文件的上传
    $uploadMgr = new UploadManager();
    // 调用 UploadManager 的 putFile 方法进行文件的上传
    $uploadMgr->putFile($token, $key, $filePath);

    //删除本地图片
    unlink($filePath);
}
复制代码

4:在根目录找到composer.json文件,在autoload里面加入files并引入app/Http/Helper/qiuniu.php,终端运行composer dump-autoload命令. 5:首页 引入 upload.js 以及 html5-fileupload 插件 6:新建ptoto路由并新建Photo控制器并写入 store 方法,方法为:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PhotoController extends Controller
{
    //上传图片
    public function store(Request $request)
    {
        if ($request->hasFile('image') && $request->file('image')->isValid()) {
            $allow_type = ['image/png', 'image/jpeg', 'image/gif'];
            if (!in_array($request->image->getMimeType(), $allow_type)) {
                return ['status' => 0, 'msg' => '图片类型不正确'];
            }

            if ($request->image->getClientSize() > 1024 * 1024 * 3) {
                return ['status' => 0, 'msg' => '图片大小不能超过3M'];
            }

            $path = $request->image->store('public/images');

            //上传到本地
//            return ['status' => 1, 'msg' => '/storage' . str_replace('public', '', $path)];

            //上传到七牛
            $file_path = storage_path('app/') . $path;
            qiniu_upload($file_path);
            return ['status' => 1, 'msg' => 'http://p5xxnm0by.bkt.clouddn.com/' . basename($file_path)];
        }
    }
}
复制代码

7:upload.js 中修改url 还有修改 下面的msg

$("input[name='image']").val(result.msg);
$("#img_show").attr("src", result.msg);
复制代码

8:laravel中找到文件储存,终端运行php artisan storage:link!

转载于:https://juejin.im/post/5b1645af5188257d5a30c087

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值