一,通过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. P1073 最优贸易 分层图+最长路

    洛谷p1073 最优贸易 链接 首先易得暴n2的暴力,暴力枚举就行 显然1e5的数据是会炸的 我们再分析题意,发现一共分为两个个步骤,也可以说是状态,即在一个点买入,在另一个点卖出,我们可以构建一个三 ...

  2. rpc之负载均衡

    使用集群,比如zk来控制注册中心,当一个服务有多个请求地址的时候,会返回多个地址. 那么就需要负载均衡来控制我们要请求哪台机器来得到请求. 方案一:随机 传入key值和key所包含的ip地址值,该地址 ...

  3. SpringBoot整合Quartz及log4j实例

    SpringBoot整合Quartz及log4j实例 因为之前项目中经常会做一些定时Job的东西,所以在此记录一下,目前项目中已经使用elastic-job,这个能相对比Quartz更加简单方便一些, ...

  4. 2048游戏 - C语言不引入图形库简单实现

    声明:本程序绝大部分属于原创,交互部分参考了博客园 Judge Young的原创文章 游戏2048源代码 - C语言控制台界面版, 作者Judge Young的算法思想非常值得参考,感谢作者的分享 附 ...

  5. hyperledger explorer 结合 fabric1.4 搭建 区块链浏览器 踩坑记录

    博主通过这篇博客的步骤搭建区块链浏览器:https://blog.csdn.net/qq_32675427/article/details/99946945 进行到下面这一步时出现各种异常,浪费了博主 ...

  6. Fastbin attack——Double Free

    ptmalloc ptmalloc的基本思路是将堆上的内存区域划分为多个chunk,在分配/回收内存时,对chunk进行分割.回收等操作.在32位系统下,chunk头的大小为8 Bytes,且每个ch ...

  7. python:接口开发

    一.flask flask是一个python编写的轻量级框架,可以使用它实现一个网站或者web服务.本文就用flask来开发一个接口. flask需要先安装再引用.pip install flask ...

  8. 认识一下python

    python 目录 python 1.python创始人 2.python的设计目标 3.为什么使用python 4.python的特点 5.python的优缺点 1.python创始人 1.1989 ...

  9. 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍&nbsp;

      你有没有过这种体验,拍照时对着镜头,脑子一片空白.表情僵硬.手和脚无处安放,最后拍出来的照片很是奇怪.拍照软件中的固定姿势抓拍功能可以帮助你:选择一个你想要的姿势模板,当你摆出同款姿势时,软件会进 ...

  10. Promise场景实例之图片加载

    所有图片加载完再添加到页面 { // 所有图片加载完再添加到页面 function loadImg(src) { return new Promise(function (resolve, rejec ...