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. C++基础--malloc和new的区别

    (1)malloc在C和C++中都可以使用,用来申请一段内存:申请的内存一定要用free释放,然后把指针置为null: new只能在C++中使用,用于动态内存分配:new的对象要delete掉: (2 ...

  2. iPython与notebook的基本用法

    1 Ipython 安装 pip install ipython 2 Notebooke 基本用法 启动ipython使用ipython 启动notebook 使用 ipython notebook ...

  3. 【Leetcode】【Easy】Remove Duplicates from Sorted List

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  4. WAKE-WIN10-SOFT-MATio

    1,matio Matio is an open-source C library for reading and writing binary MATLAB MAT files. This libr ...

  5. docker-day1-安装和基本使用

    Docker 1.什么是docker Docker 是一个开源项目,可以实现轻量级的操作系统虚拟化解决方案. Docker 的基础是 Linux 容器(LXC)等技术.在 LXC 的基础上 Docke ...

  6. 配置环境变量时,cmd下运行java -version,报错:找不到或无法加载主类 -version

    这个方面适用于报错为:java 找不到或无法加载主类,一般是找不到类的路径,问题出在CLASSPATH环境变量上,当然这是大多数.大概率的出错点 不排除根据个人情况不况,所以想起来伟大领袖毛主席的话: ...

  7. IOS 通讯录 (访问,添加,修改)

      如何访问用户的通讯录 在iOS中,有2个框架可以访问用户的通讯录 AddressBookUI.framework 提供了联系人列表界面.联系人详情界面.添加联系人界面等 一般用于选择联系人 Add ...

  8. PS中会使用到的快捷键有那些?

    P.S:我刚刚在百度上,搜了一些关于PS的快捷键的使用. 我把它总结了一下.对我今后的P图有所帮助. PS的所有快捷键 1. 显示/隐藏选择区域 [Ctrl]+[H] 2. 取消当前命令:Esc: 工 ...

  9. 获取input的值

    一.jQuery获取单选框的值1.$('input:radio:checked').val():2.$("input[type='radio']:checked").val();3 ...

  10. vue---组件引入及使用的几种方式

    在vue的项目开发过程中,基本都是基于组件化开发项目,总结下使用组件的几个点: 一.@符号的使用 在vue项目中 @ 符号代表的是根目录,即 src 目录. 二.组件的放置位置 在项目中,公用的组件放 ...