tp框架文件上传七牛服务器,TP5开发 - 七牛云图片上传方法-程序员宅基地

技术标签: tp框架文件上传七牛服务器  

1、config.php配置文件里配置七牛云密钥等

里面 secretKey accessKey domain bucket对应换成自己七牛云申请的,

步骤:

(1)七牛云注册成功后—对象存储申请10G免费空间,

(2)右上角个人中头像

f2705e3b44c7

image.png

f2705e3b44c7

image.png

//配置文件

return [

// 文件上传默认驱动

'UPLOAD_DRIVER' => 'Qiniu', //设置七牛上传驱动

//'UPLOAD_DRIVER' => 'Local',

// 七牛上传驱动配置说明

'UPLOAD_Qiniu_CONFIG' => array(

'secretKey' => 'WFqGBhS21Mi1qbyIwPPmsPndnpFUCuEDdPF7mDqL1', //七牛服务器

'accessKey' => 'qR3UXu03aZqHYD3V2WKhlNCiCBEUhFfwEcrDlkQV1', //七牛用户

'domain' => 'http://img.zengzone.com/', //七牛域名

'bucket' => 'hiki19871', //空间名称

'timeout' => 300, //超时时间

),

];

2、上传图片方法

/**

* 图片上传,ajax返回

* 七牛云存储图片(同时保留本地备份数据

*/

public function qiniu_upload(){

require_once EXTEND_PATH.'Qiniu/autoload.php';

$config = Config::get('UPLOAD_Qiniu_CONFIG');

$accessKey = $config['accessKey'];

$secretKey = $config['secretKey'];

$auth = new Auth($accessKey, $secretKey);

$bucket = $config['bucket'];// 要上传的空间

$token = $auth->uploadToken($bucket);// 生成上传 Token

// 要上传文件的本地路径

if(isset($_FILES['upfile'])){

$filePath = $_FILES['upfile']['tmp_name'];//ueditor上传图片

}

if(isset($_FILES['file'])){

$filePath = $_FILES['file']['tmp_name'];//ueditor上传图片

}

$file = new File($filePath);

$info = $file->webuploader_move(ROOT_PATH . 'public' . DS . 'uploads');//本地上传

// 上传到七牛后保存的文件名

if($info){

$key = $info->getFilename();

}else{

$key = md5(time()).'.png';

}

// 初始化 UploadManager 对象并进行文件的上传

$uploadMgr = new UploadManager();

// 调用 UploadManager 的 putFile 方法进行文件的上传

list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);

if ($err === null) {

$data['url'] = $config['domain'].$ret['key'];

}

if($info){

$data['name'] = $info->getFilename();

$data['md5'] = $info->hash('sha1');

$data['sha1'] = $info->hash('md5');

$data['ext'] = 'jpg';

$data['path'] = '/uploads/' . $info->getSaveName() . 'jpg';

$data['location'] = 'Qiniu';

$data['create_time'] = time();

$data['status'] = 1;

$id = Db::name("admin_upload")->insertGetId($data);//插入图片数据

if($id > 0){

$return['path'] = $data['path'];

$return['name'] = $data['name'];

$return['id'] = $id;

$return['state'] = 'SUCCESS';

$return['url'] = $data['url'];

}else{

$return['error'] = 1;

$return['success'] = 0;

$return['status'] = 0;

$return['message'] = '上传出错'.$file->getError();

}

}else{

// 上传失败获取错误信息

$return['error'] = 1;

$return['success'] = 0;

$return['status'] = 0;

$return['message'] = '上传出错'.$file->getError();

}

exit(json_encode($return));

}

//删除图片

public function removefile(){

$cover = input("request.cover",0);

Db::name('admin_upload')->where("id={$cover}")->delete();

return ['status' => 1, 'info' => '删除成功'];

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_32642653/article/details/119660366

智能推荐

rocketMQ中,消费者、消费者组、Topic、队列的关系_rocketmq topic和queue关系-程序员宅基地

文章浏览阅读2w次,点赞28次,收藏76次。初学roketMQ的同学可能会比较难以理解这四者之间的关系,这里我来理一下。1、消费者和消费者属于个体与群体的关系,非常容易理解,不赘述2、Topic是相当于一种消息类型,而队列queue则是属于某个Topic下的更细分的一种单元。举个例子。Topic代表老虎,是一种动物类型,而队列就相当于东北虎,是对老虎的更详细描述。3、在同一个消费者组下的消费者,不能同时消费同一个queue。4、一个消费者组下的消费者,可以同时消费同一个Topic下的不同队列的消息。5、不同消费者组下的消费者,可以同时._rocketmq topic和queue关系

mysql truncate某列_MySQL之删_delete-truncate-程序员宅基地

文章浏览阅读229次。MySQL增删改查之删_delete-truncate一、DELETE语句删除数据记录1、在单表中删除行语法:DELETE [IGNORE] FROM tbl_name[WHERE where_condition][ORDER BY ...][LIMIT row_count]①从表中删除满足WHERE条件的所有行;②没有WHERE条件,则删除表中的所有行基本格式:delete from wh..._mysql truncate 某行数据

【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎_华为云升腾云服务器实例可以用于推理加速的是-程序员宅基地

文章浏览阅读2.2k次。摘要:昇腾AI计算解决方案以极致算力,端边云融合、全栈创新,开放生态的硬核实力。用户可以使用标准的Matrix接口实现业务引擎,对外释放昇腾AI加速能力。从卷积神经网络中的矩阵乘法(GEMM)说起说起AI业务,就不得不提最经典的AlexNet,AlexNet模型于2012年提出,其被认为是计算机视觉领域最有影响力的模型之一。AlexNet网络主要包含八层,前五层是卷积层,最后三层是全连接层。 配合pooling及norm运算,以下列出所有卷积层和全连接层的参数规模以及每层的浮点计算量,从图..._华为云升腾云服务器实例可以用于推理加速的是

【比赛合集】19场可报名的「创新应用」、「可视化」和「程序设计」大奖赛,任君挑选!_程序软件创新比赛-程序员宅基地

文章浏览阅读932次。实时聚合多平台的(Kaggle、天池…)和(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注!近期CompHub对进行中的比赛增加了的识别,你可以直接在CompHub中浏览当前可报名的比赛, 而不用进入比赛主页才知道比赛的报名状态。本账号将会不定期推送当前可报名的比赛,方便大家查阅。 enjoy it!上期推送了,本期推送「创新应用」、「可视化」和「程序设计」这三个类别当前可报名的大奖赛。更多比赛信息见或 点击文末以下信息仅供参考,以比赛官网为准。_程序软件创新比赛

Linux中jprofiler安装使用教程_jprofiler linux-程序员宅基地

文章浏览阅读4.3k次,点赞2次,收藏9次。jprofiler是一款很好的性能分析工具,今天我们将介绍如何在Linux中安装使用jprofiler一、下载官网下载jprofiler,此处我们选择jprofiler9.2.1版本:https://www.ej-technologies.com/download/jprofiler/version_92注意,本地windows和Linux服务器要安装同一个版本的jprofiler,linux我们选用.TAR.GZG格式的安装包,windows安装需要填写注册码。Profiler ._jprofiler linux

浅谈流形学习_流形 知乎-程序员宅基地

文章浏览阅读1.4k次。作者:暮暮迷了路链接:https://www.zhihu.com/question/24015486/answer/194284643来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最高票解释的很学术~我就说个定性而非定量的解释。流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗..._流形 知乎

随便推点

ubuntu conf误删除的问题-程序员宅基地

文章浏览阅读265次。linux最烦的就是/etc下面的conf文件被误删除,重新安装软件还没有办法恢复。在这个时候必须要到/var/lib/dpkg/info/下删除对应的包安装信息,重新安装时,conf配置文件才会重新生成。转载于:https://www.cnblogs.com/changye/p/4060474.html..._ubuntu blacklist.conf误删

【python】ModuleNotFoundError: No module named 'nltk' 的解决方法-程序员宅基地

文章浏览阅读9.8k次,点赞5次,收藏5次。如果你报上面这个错误:直接一条命令解决问题:小虾的版本为python3.7.3版本的,所以用 pip3.7pip3.7 install -U nltk_no module named 'nltk

强化学习笔记:目标、奖励、回报和回合_强化学习中的奖赏信号-程序员宅基地

文章浏览阅读1.1w次,点赞15次,收藏33次。在上一篇我们介绍了强化学习问题的形式化(数学)框架:马尔科夫决策过程。本篇以及后续几篇继续讨论这个形式化(数学)框架下的关键要素和概念,如奖励和回报、策略、值函数、贝尔曼方程等等。_强化学习中的奖赏信号

Linux 配置SFTP,配置用户访问权限_subsystem sftp internal-sftp-程序员宅基地

文章浏览阅读6.5w次,点赞16次,收藏51次。版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文。我推荐使用SSH自带的SFTP,SFTP是Secure File Transfer Prot..._subsystem sftp internal-sftp

BITS_TO_LONGS(nr)宏函数实现_bits_to_longs函数-程序员宅基地

文章浏览阅读389次,点赞8次,收藏7次。该宏定义中,BITS_PER_BYTE定义在include/linux/bits.h文件中,值为8。在x86_64架构下,改宏定义表示为,根据传入type的类型,获取对应类型的bit位数。整体宏函数的作用,就是传入的nr(一般指bit位数),需要占用long型数据的个数,不足一个时候向上取整。公式中减一,是为了保证除操作向上取整。_bits_to_longs函数

0x0000050蓝屏srvsys_分享蓝屏0x00000050提示srv.sys的解决方法-程序员宅基地

文章浏览阅读2.4k次。内容来源:系统家园今天来聊聊一篇关于分享蓝屏0x00000050提示srv.sys的解决方法的文章,现在就为大家来简单介绍下分享蓝屏0x00000050提示srv.sys的解决方法,希望对各位小伙伴们有所帮助。现出现蓝屏代码0x00000050现象,最可能的原因就是电脑内存的故障。也可能是软件不兼容性、病毒破坏了NTFS卷等原因导致的。方法一:一、了解了故障原因的之后,先对电脑上每个硬件进行注意替..._srv.sys蓝屏解决方法000050

推荐文章

热门文章

相关标签