一,通过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上传图片到七牛云,并且删除七牛云的图片的更多相关文章

  1. 利用ThinkPHP自带的七牛云驱动上传文件到七牛云以及删除七牛云文件方法

    一.准备工作 1.注册七牛云账号 2.选择对象储存->创建空间->设置为公开 3.在config配置文件中添加以下代码 'UPLOAD_FILE_QINIU' => array ( ...

  2. C#获取七牛云token/删除七牛云图片接口

    // 获取七牛token public ApiResponse GetQiniuToken(QiniuToken req) { try { Mac mac = new Mac(req.AccessKe ...

  3. php七牛批量删除空间内的所有文件方法

    相信大家都在使用七牛的免费云存储服务的同时,有清空七牛云存储镜像文件或者批量删除七牛云空间文件的需求,该怎么做?官方的工具好像并没有提供批量删除的功能,七牛云官方给出的建议是删除空间,再新建一个这样太 ...

  4. 1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码

    1上传多张图片, 要对 $_FILES进行 重新处理. //添加 public function addCourseAlbumAction() { $CourseAlbumModel = new Co ...

  5. 【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)

    [Silverlight]Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System) 目前包括微软必应地图在内的几乎所有在线电子地图(如:Google Maps等)都 ...

  6. vue <input type="file">上传图片、预览、删除

    使用原生<input type="file">上传图片.预览.删除:multiple实现可上传多张 参数名 类型 说明 fileTypes Array 文件类型, 默认 ...

  7. spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置

    spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ ...

  8. WPF中删除打开过的图片

    在WPF中,当我们删除打开过的图片时,往往会遇到"...无法删除,文件正在被另一个进程使用"的异常.即使当前文件是打开后关闭过的也不行. 这个问题的原因很简单,是因为WPF的缓存策 ...

  9. 动态加载/删除css文件以及图片预加载

    动态加载/删除css文件以及图片预加载   功能模块页面   最近,工作中遇到了一个比较奇葩的需求:要在一个页面(PC端)增加一个功能模块,但是这个页面在不久之后要重构,为了新增加的模块可以继续复用, ...

随机推荐

  1. [源码解析] Flink的Slot究竟是什么?(2)

    [源码解析] Flink 的slot究竟是什么?(2) 目录 [源码解析] Flink 的slot究竟是什么?(2) 0x00 摘要 0x01 前文回顾 0x02 注册/更新Slot 2.1 Task ...

  2. Ajax提交数据判断员工编号是否存在,及自动填充与员工编号所对应的员工姓名。

    JSP页面中所需要的JavaScript事件及Ajax <script type="text/javascript"> function checkEmpNo(id){ ...

  3. php中的加密解密模块-mcrypt

    <?php /* 打开加密算法和模式 */ $td = mcrypt_module_open('rijndael-256', '', 'ofb', ''); /* 创建初始向量,并且检测密钥长度 ...

  4. 会话技术之 Session

    会话技术之 Session 不多废话,先来一个 HelloWorld. Session 有 get 肯定要先有 set . @Override protected void service(HttpS ...

  5. Java实现文件夹下文件实时监控

    一.commons-io方法 1.使用Commons-io的monitor下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的 (1)可以监控文件夹的创建.删除和修改 (2)可以监控文件的创 ...

  6. 用C、python手写redis客户端,兼容redis集群 (-MOVED和-ASK),快速搭建redis集群

    想没想过,自己写一个redis客户端,是不是很难呢? 其实,并不是特别难. 首先,要知道redis服务端用的通信协议,建议直接去官网看,博客啥的其实也是从官网摘抄的,或者从其他博客抄的(忽略). 协议 ...

  7. c++基础 写二进制文件

    问题描述 有许多数据待拟合,需要从 root 中提取出来,写成文本文件数据量过大,想转成二进制文件. 解决 #include "TString.h" #include " ...

  8. C的文件操作---笔记

    打开文件  FILE *fp = fopen(char *filename, char *mode) 关闭文件  fclose(fp) 字符形式读  char ch = fgetc(fp) 字符形式写 ...

  9. Nginx反代MogileFS集群

    上一篇博文我们主要聊了下分布式文件系统MogileFS的组件以及部署使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13677279.html:今天我们主要 ...

  10. Kvm 虚拟化介绍(1)

    一.虚拟化分类       1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间 ...