composer安装:

composer require qiniu/php-sdk

配置使用:

在tp5.1的配置文件app.php中配置七牛云的参数

    'qiniu' => [
'accesskey' => '你的accesskey',
'secretkey' => '你的secretkey',
'bucket' => '存储空间',
'domain' => '域名'
],

前端使用webuploader上传

/*****加载AJAX上传图片******/
// 调用形式 Upload(元素编号,允许上传商品数量);
function Upload(i,num){
sumimg(num);
// var token = 'ZTEpdpZn1J1fLzgTfNtLXvRmcu0bjcnTUUhoQsEW';
var uploader = WebUploader.create({
auto: true,
swf: '/static/extends/lib/webuploader/0.1.5/Uploader.swf',//文件接收服务端。
server: '/admin/tool/uploadImg',//文件接收服务端。
pick: '#filePicker'+i,//指定选择文件的按钮容器
fileNumLimit: num,//文件数量
compress: {
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,
},
accept: { //指定接受哪些类型的文件
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
});
uploader;
//当文件被加入队列以后触发
uploader.on('fileQueued',function(file){
var $li = $(
'<div id="' + file.id + '" class="file-item thumbnail" onclick="delUpload(this,'+i+','+num+');">' +
'<input type="hidden" name="img[]" id="'+file.id+'id" />'+
'<img>' +
'<div class="info">开始上传图片...</div>' +
'</div>'
),
$img = $li.find('img');
$("#fileList"+i).append($li);//图片添加到容器
var sum = $("#fileList"+i).find('.file-item').length;
if(sum >= num){
$("#filePicker"+i).attr('style','display:none;');
}
// 创建缩略图显示
uploader.makeThumb(file,function(error,src){
if (error){
$img.replaceWith('<span>不能预览</span>');
return;
}
$img.attr('src',src);
},200,200);
});
// 文件上传过程中创建进度百分比实时显示。
uploader.on('uploadProgress',function(file,percentage){
$("#"+file.id+" .info").html('正在上传('+parseInt(percentage*100)+'%)');
}); //文件上传返回成功,判断是否成功上传到七牛
uploader.on('uploadSuccess', function(file,response){
if(response.code == 0){
$("#"+file.id+" .info").html('上传失败');
}else{
sumimg(num);
$("#"+file.id+" .info").html('上传完成,点击图片可删除');
$( '#'+file.id ).addClass('upload-state-done');
$( '#'+file.id+"id").val(response.data);//赋值到input
}
});
}

后台代码:

调用七牛

use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;

上传图片:

        // 初始化签权对象
$auth = new Auth($this->_accessKey,$this->_secretKey); $token = $auth->uploadToken($this->_bucket); // 构建 UploadManager 对象
$uploadMrg = new UploadManager(); // 上传文件到七牛
$files = $_FILES;
$values = array_values($files);
$saveName = hash_file('sha1', $values[0]['tmp_name']) . time();
list($ret, $err) = $uploadMrg->putFile($token, $saveName, $values[0]['tmp_name']); if ($err !== null) {
$return = [
'code' => 0,
'msg' => '上传图片失败'
];
} else {
$return = [
'code' => 1,
'msg' => '上传成功',
'data' => 'http://' . $this->_domain . '/' . $ret['key']
];
}
return json($return);

删除图片:

        $img = Request::param('name');

        $imgArr = explode('/',$img);

        $delImgName = end($imgArr);

            // 初始化签权对象
$auth = new Auth($this->_accessKey,$this->_secretKey); $config = new Config(); // 管理资源
$bucketManager = new BucketManager($auth,$config); // 删除文件操作
$res = $bucketManager -> delete($this->_bucket,$delImgName); if (is_null($res) || $res == null) {
// 为null成功
$return = [
'code' => 1,
'msg' => '删除成功'
];
}else{
$return = [
'code' => 0,
'msg' => '删除失败'
];
} return json($return);

【tp5.1】七牛云上传图片的更多相关文章

  1. 七牛云 上传图片 https 修改Nginx 注意事项

    仅在这记录下,今天的事情. 问题出自于Nginx 设置http 强制跳转 https设置 1.上午,出于某些需求,我将服务器Nginx 设置http 强行跳转 https server { liste ...

  2. thinkphp5 tp5 七牛云 上传图片

    七牛sdk地址https://files.cnblogs.com/files/zonglonglong/qiniu-php-sdk-7.2.2.rar 首先下载php的sdk将文件夹放到vendor ...

  3. Html5+Mui前端框架,开发记录(三):七牛云 上传图片

    1.Html界面: <div id="container"> <label>凭证:</label> <div id="uploa ...

  4. thinkphp5 中使用 七牛云 上传图片和文件

    原文链接:http://www.thinkphp.cn/code/3279.html 参考:https://blog.csdn.net/rain_web/article/details/7910542 ...

  5. 七牛云上传图片到cdn,cdn返回的是一个只有图片的url

    如:

  6. 在node中使用promise上传图片到七牛云

    为了分摊个人服务器压力.提升图片下载上传的速度,使用七牛云保存用户上传的图片. 后台基于express搭建的,上传使用七牛云第三方nodejs-sdk.由于七牛云上传图片只能单个进行,并且考虑到上传完 ...

  7. 上传图片到七牛云(服务端 node.js sdk)

    大体思路 前端要上传图片到七牛云,需要有一个token进行授权操作,而获取这个上传的upload token(以下简称upToken),在服务端需要一定的身份校验,比如说:只有登录的vip用户才能拿到 ...

  8. PHP生成二维码并上传到七牛云

    参考资料 qr-code生成二维码    七牛云上传图片 实现步骤 //拿到插入后的id $res = DB::table('book_book')->insertGetId($data); i ...

  9. 图床神器:七牛云 + Mpic + FScapture

    概述 最近在搞Markdown的东西,遇到了一个很棘手的问题,即图片的显示:通用的图片,可以直接网上搜索,但有时候需要自己截一些图或者对下载的图片进行修改,在本地存储完全没有问题,但Markdown写 ...

随机推荐

  1. linux漏洞分析入门笔记-bypass_PIE

    ubuntu 16.04 IDA 7.0 docker 0x00:漏洞分析 1.ASLR的是操作系统的功能选项,作用于executable(ELF)装入内存运行时,因而只能随机化stack.heap. ...

  2. 【起航计划ObjC 003】印第安老斑鸠ObjC的幻想 ---- ObjC经典问题

    1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #im ...

  3. wxpython 按钮等事件的触发

    1.按钮事件的触发 方法中第二个参数为event

  4. 自动装配(AutoWire)

    根据 autowire 的配置选择装配策略 byName 选择和属性名 name 一致的 bean 进行装配: byType 根据类型选择,如果对应的类型匹配到多个bean,则会报错,如下配置: &l ...

  5. Spring MVC 如何加载静态html

    在spring mvc的xml文件最后面加上下面这一行<mvc:deault-servlet-handler/>

  6. java maven项目 导入jar包注意

    1.将jar 包放到lib目录下 2.build path 3.点击maven主项目右键选择properties 4.选择myeclipse 下的第一个选项 5.点击add   选择archives ...

  7. Struts2学习-拦截器2

    1.做一个登陆页面(loginView.jsp,才用Action来访问),2.登陆成功后,可以跳转到系统的首页(index.jsp),3.首页有一个链接(testOtherAction访问其它的功能模 ...

  8. 11GR2 双节点RAC 配置单节点DG

    只记录主要步骤,供大家参考: RAC 搭建单节点 DG 1 修改源数据库开启归档和force loggingalter system set shared_servers=0; alter datab ...

  9. matlab各类数据l图像之间的转化

    matlab各类数据图像之间的转化 rgb类型转化为二值的步骤例如以下: 1.採用命令im2double将rgb类型转化三维的double >> str='E:\programing\Ei ...

  10. 【[POI2000]病毒】

    \(Ac\)自动机好题了 这个题要求我们一直无法匹配到结束标记,所以我们直接在\(trie\)图上找到一个环,这个环可以被根节点到达,之后还没有结束标记 发现自己不会\(dfs\)找环,于是直接莽上\ ...