TP5上传图片到七牛云,并且删除七牛云的图片
一,通过composer 下载七牛云 sdk
composer require qiniu/php-sdk
二,手动下载七牛云sdk
1,https://developer.qiniu.com/kodo/sdk/1241/php 在这链接里面下载PHP 的sdk文件夹
2,解压放在 vendor 文件夹下面
3,前端通过layui 向后端发起请求
4,后端数据的处理
5,以下是上传图片到七牛云的 前端和后端的源码
前端:
layui.use('upload', function () {
var $ = layui.jquery
, upload = layui.upload;
//详情图片
var uploadInst = upload.render({
elem: '#pica'
, url: '/入口文件/product/intedral_img/detailsKey'
,accept:"images"
,done: function(obj){
console.log(obj)
if(obj.code==1){
$("#diva").append("<span><img src='七牛云的域名"+obj.key+"' tid="+obj.key+" style='width:50px' id='imgs'><i style='cursor:pointer' tid="+obj.key+">x</i></span>");
}
}
});
后端:
/**
* 添加积分详情图片
* 将图片上传到七牛云
* @return false|string|\think\response\Json
* @throws \Exception
*/
public function detailsKey(){
// 用于签名的公钥和私钥
$accessKey = $this->accessKey;//这个数据,我是在当前类调用的
$secretKey = $this->secretKey;
// 初始化签权对象
$auth = new Auth($this->accessKey, $this->secretKey);
// 空间名
$bucket = $this->bucket;
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
// 上传文件到七牛
$filePath = $_FILES['file']['tmp_name']; //获取上传的图片、文件
$filename = 'image/details/'.date("Y").'/'.date("m").'/'.date("d").'/'.time().$_FILES["file"]["name"];
list($ret, $err) = $uploadMgr->putFile($token, $filename, $filePath);
if ($err !== null) {
return json_encode(['code'=>0,'message'=>'上传失败']);
} else {
return json(['code'=>1,'key'=>$ret['key']]);
}
}
三,删除七牛云中上传的图片
前端:
后端:
以下代码
前端代码
window.del = function(that) {
var tid = $(that).attr("tid");
var span = $(that).parent()
$.ajax({
url:"/xJoPMmqHhQ.php/product/intedral_img/delImg",
dataType:'json',
data:{img:tid},
method:'post',
success:function(res){
if(res.code==1){
layer.msg('成功',{icon:1,title:'提示',time:1000});
span.remove();
}else{
layer.msg('失败',{icon:1,title:'提示',time:1000});
}
}
});
}
后端代码
//删除七牛云的图片
public function delimage($delFileName)
{
// 判断是否是图片 目前测试,简单判断
$isImage = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/', $delFileName);
if(!$isImage){
return false;
}
// 构建鉴权对象
$auth = new Auth($this->accessKey, $this->secretKey);
// 配置
$config = new \Qiniu\Config();
// 管理资源
$bucketManager = new BucketManager($auth, $config);
// 删除文件操作
$res = $bucketManager->delete( $this->bucket, $delFileName);
//为空就删除成功
if (is_null($res)) {
$this->success('删除成功');
}
$this->error('删除图片失败');
}
}
TP5上传图片到七牛云,并且删除七牛云的图片的更多相关文章
- 利用ThinkPHP自带的七牛云驱动上传文件到七牛云以及删除七牛云文件方法
一.准备工作 1.注册七牛云账号 2.选择对象储存->创建空间->设置为公开 3.在config配置文件中添加以下代码 'UPLOAD_FILE_QINIU' => array ( ...
- C#获取七牛云token/删除七牛云图片接口
// 获取七牛token public ApiResponse GetQiniuToken(QiniuToken req) { try { Mac mac = new Mac(req.AccessKe ...
- php七牛批量删除空间内的所有文件方法
相信大家都在使用七牛的免费云存储服务的同时,有清空七牛云存储镜像文件或者批量删除七牛云空间文件的需求,该怎么做?官方的工具好像并没有提供批量删除的功能,七牛云官方给出的建议是删除空间,再新建一个这样太 ...
- 1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码
1上传多张图片, 要对 $_FILES进行 重新处理. //添加 public function addCourseAlbumAction() { $CourseAlbumModel = new Co ...
- 【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)
[Silverlight]Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System) 目前包括微软必应地图在内的几乎所有在线电子地图(如:Google Maps等)都 ...
- vue <input type="file">上传图片、预览、删除
使用原生<input type="file">上传图片.预览.删除:multiple实现可上传多张 参数名 类型 说明 fileTypes Array 文件类型, 默认 ...
- spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置
spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ ...
- WPF中删除打开过的图片
在WPF中,当我们删除打开过的图片时,往往会遇到"...无法删除,文件正在被另一个进程使用"的异常.即使当前文件是打开后关闭过的也不行. 这个问题的原因很简单,是因为WPF的缓存策 ...
- 动态加载/删除css文件以及图片预加载
动态加载/删除css文件以及图片预加载 功能模块页面 最近,工作中遇到了一个比较奇葩的需求:要在一个页面(PC端)增加一个功能模块,但是这个页面在不久之后要重构,为了新增加的模块可以继续复用, ...
随机推荐
- 小程序mpvue中flyio的使用方法
Fly.js 一个基于Promise的.强大的.支持多种JavaScript运行时的http请求库. 有了它,您可以使用一份http请求代码在浏览器.微信小程序.Weex.Node.React Nat ...
- Linux通过命令行将英文改成中文
1.首先查看当前系统是否有中文语言包 locale -a 如果没有zh_CN.utf8,就需要下载中文语言包,否则,如果有中文语言包,跳过第二步. 2.安装中文语言包 Ubuntu: sudo apt ...
- python基础:面向对象
一.定义 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类:一个种类,一个模型. 对象:指具体的东西,模型造出来的东西叫做对象. 实例:实例和对象是一样的. 实例化:实例化就 ...
- Java数据类型之Cache模式
1.关于Java数据类型 基本数据类型 基本数据类型有8种,每种基本数据类型都有对应的引用类型. 类型 描述 长度 可表示数据 包装类型 boolean 布尔型 1 true.false Boolea ...
- oracle之二表和表空间的关系
表和表空间的关系 建一个使用缺省值的表空间SQL> create tablespace a datafile '/u01/data/urpdb/a01.dbf' size 10m; 利用orac ...
- Git使用教程与基本原理和Sourcetree基本使用探微
什么是GIT Git是一个强调速度的分布式版本控制软件和源代码管理系统(SCM,source code management).Git最初是由Linus Torvalds为内核开发而设计的管理软件.自 ...
- Java程序员必备基础:JDK 5-15都有哪些经典新特性
前言 JDK 15发布啦~ 我们一起回顾JDK 5-15 的新特性吧,大家一起学习哈~ 本文已经收录到github ❝ https://github.com/whx123/JavaHome ❞ 「公众 ...
- 北京数途科技有限公司--EAM MAXIMO介绍
一.EAM概述: EAM( Enterprise Asset Management)即企业资产维护管理系统 ,它是面向资产密集型(Asset-intensive)企业的企业信息化 解决方案的总称,其前 ...
- python基础入门语法和变量类型(二)
列表 列表是 Python 中使用最频繁的数据类型,它可以完成大多数集合类的数据结构实现,可以包含不同类型的元素,包括数字.字符串,甚至列表(也就是所谓的嵌套). 和字符串一样,可以通过索引值或者切片 ...
- 趣图:普通人讲故事 VS 程序员讲故事
扩展阅读 趣图:我说自己菜 vs 大佬说自己菜 趣图:客户需求VS客户预算 趣图:在外行人眼中的程序员 如何处理前任程序员留下的代码 一个故事讲清楚NIO