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端)增加一个功能模块,但是这个页面在不久之后要重构,为了新增加的模块可以继续复用, ...
 
随机推荐
- 在centos6.5下搭建lnmp
			
1.查看环境: [root@localhost /]# cat /etc/redhat-release CentOS release 6.5 (Final) 2.关掉防火墙(需要到国外地址下载软件 ...
 - Salesforce LWC学习(二十四) Array.sort 浅谈
			
本篇参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort sal ...
 - PyTorch ResNet 使用与源码解析
			
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/resnet_inference.py 这篇文章首先会简 ...
 - OpenShift Container Platform 4.3.0部署实录
			
本文参照红帽官方文档,在裸机安装Openshift4.3文档进行.因为只有一台64G内存的PC机,安装vmware vsphere 6.7免费版进行本测试,所以尝试在OCP官方文档要求的最低内存需求基 ...
 - Solon详解(二)- Solon的核心
			
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
 - pwnable.kr之leg
			
查看原题代码: #include <stdio.h> #include <fcntl.h> int key1(){ asm("mov r3, pc\n"); ...
 - MongoDB基础总结
			
1.数据可基本操作 1. 创建数据库 use databaseName 选择一个数据库,如果数据库不存在就自动创建一个数据库 只有向数据库中插入数据时,数据库才会被真实创建出来,而当数据库中没有数据 ...
 - Effective Objective-C  的读书笔记
			
本文主要是摘录了 <Effective Objective-C 2.0>一书中提到的编写高质量iOS 代码的几个方法. 1 熟悉Objective -C 1.1 OC 起源 OC 为C语言 ...
 - HTML标签语言一览表
			
<html> ● 文件声明 让浏览器知道这是 html 文件 <head> ● 开头 提供文件整体资讯 <title> ● 标题 定义文件标题,将显示于浏览顶端 & ...
 - [Java并发编程之美]第2章 synchroized关键字
			
###synchronized关键字 synchronized块是Java提供的一种原子性内置锁,每个对象都可以把它当同步锁来用.线程在进入synchronized块钱会自动获取内部锁,这时候其他线程 ...