tp 七牛云文件上传
1.先创建好七牛云账号和存储空间
- 申请七牛云账号;
- 创建七牛云存储空间;
- 在账号的秘钥管理里面创建秘钥 获取AccessKey / SecretKey;
2.集成PHP-SDK
七牛云开发文档:https://developer.qiniu.com/kodo
(一)Composer 安装 SDK(推荐使用)
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:composer require qiniu/php-sdk
(二)传统方式安装
进入七牛云,下载官方 PHP-SDK,将下载下来的SDK解压,放入项目第三库文件(vendor 或者 extend)
3.实战开发
在之前要引入七牛云
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
HTML页面代码:
<form action="http://www.examtest.com/pyg/admin/save" method="post" class="form form-horizontal" id="form-add" enctype="multipart/form-data"> //文件上传
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2"><span class="c-red"></span>logo图片:</label>
<div class="formControls col-xs-8 col-sm-9">
<div class="uploader-thum-container">
<div id="fileList" class="uploader-list"></div>
<input type="file" id="goods_logo" name="goods_logo" value="">
</div>
</div>
</div> </form>
控制器代码:
public function save(Request $request)
{
// 七牛云文件上传
// 接受文件值
$img = $_FILES['goods_logo'];
// 1.截取文件的后缀
$suffix = substr($img['name'], -4, 4);
//2.获取文件的临时路径
$tmp_name = $img['tmp_name'];
//3:书写上传文件的新的文件名称(自定义)拼接,截取的后缀;
$newFilePath = md5($tmp_name) . time() . rand(1, 999) . $suffix;
print_r($newFilePath);
//4:区七牛云里获取自己的秘钥
$AccessKey = '7Gu_5HzqSHJB3nLBz51pQN8oJBfqeGwd3kQ-vCNX';
$SecretKey = 'frzqcOjOhL55eIMXQSLIfO_apMHrs0fr8jjklKDt';
// 5:将获取的的秘钥实例化
$auth = new Auth($AccessKey, $SecretKey);
// 6:设置将文件上传的空间名称
$spaceName = 'yanbing123456789';
//7:要上传的空间 生成上传Token
$token = $auth->uploadToken($spaceName);
//8: 构建 UploadManager 对象
$uploadMgr = new UploadManager();
//9: 调用 UploadManager 的 putFile 方法进行文件的上传。
list($ret, $err) = $uploadMgr->putFile($token, $newFilePath, $tmp_name);
//10:进行判断
if ($err != null) {
echo '文件上传失败';
/* return json([
'msg' => '上传失败',
'code' => 201,
'result' => ''
]);
*/
}
//11:空间域名进行拼接新的文件路径
$imageUrl = 'http://qzevlue2n.hn-bkt.clouddn.com/' . $newFilePath;
echo '文件上传成功';
/* return json([
'msg' => '上传成功',
'code' => 200,
'result' => ''
]);
*/
}
tp 七牛云文件上传的更多相关文章
- laravel 7七牛云文件上传
1:composer下载七牛云 composer require itbdw/laravel-storage-qiniu 2:打开 config 文件夹下的 app.php 文件,在 provider ...
- 七牛云覆盖上传 php
使用七牛云过程中遇到了需要上传覆盖的情况,最终解决,分享给大家. 七牛云sdk上传示例中是这样写的 <?php require_once 'path_to_sdk/vendor/autoload ...
- angular封装七牛云图片上传,解决同一页面多个上传按钮分别上传
step1:引入文件 引入Plupload *该SDK上传功能集于Plupload插件封装,所以需要下载Plupload; plupload.dev.js 引入qiniu.js为了简便,当时直接从官网 ...
- 一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传.
一.虚拟环境 ''' 解决版本共存 1. 用pycharm选择File点击NewProject然后选择virtualenv创建一个纯净环境 2. 打开下载的目录将venv文件夹下的所有文件(纯净的环境 ...
- 图床工具PicGO实现七牛云图片上传
图床工具PicGO实现七牛云图片上传 我们在写博客或者网络文章时经常需要上传图片.目前最有名气的图床工具就是PicGO. 简单的界面,完整的功能,在相册里也能直接复制markdown图片链接.一直深受 ...
- 利用ThinkPHP自带的七牛云驱动上传文件到七牛云以及删除七牛云文件方法
一.准备工作 1.注册七牛云账号 2.选择对象储存->创建空间->设置为公开 3.在config配置文件中添加以下代码 'UPLOAD_FILE_QINIU' => array ( ...
- C#使用七牛云存储上传下载文件、自定义回调
项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现. 做了一个简易的压力测试,同时上传多个文件,七牛自己应该有队列处理并发请求,我无论同时提交多少个文件,七牛是批量一个个排队处理了. 一个 ...
- Android客户端实现七牛云存储文件上传
1.简单文件上传 上传模型如下. 1.1获得Token 不管是简单文件上传,还是分片上传.断点续传 都需要首先访问服务器,以获得上传凭证信息Token..用于测试时,可以用本地模拟Token信息(有 ...
- FineUI第七天---文件上传
文件上传的方式: 控件的一些常用属性: ButtonText:按钮文本. ButtonOnly:是否只显示按钮,不显示只读输入框. ButtonIcon:按钮图标. ButtonIconUrl: ...
随机推荐
- 营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理
摘要:你知道吗,MySQL在实际工作时候的两种数据读写机制? 本文分享自华为云社区<MySQL日志顺序读写及数据文件随机读写原理>,作者:JavaEdge . MySQL在实际工作时候的两 ...
- 使用IndexedDB缓存给WebGL三维程序加速
前言 使用webgl开发三维应用的时候,经常会发现三维场景加载比较慢,往往需要等待挺长时间,这样用户的体验就很不友好. 造成加载慢的原因,主要是三维应用涉及到的资源文件会特别多,这些资源文件主要是模型 ...
- Collection和Map集合
前言 集合的长度是可变的.集合存储的都是对象.而且对象的类型可以不一致. Collection集合和Map集合是所有集合的父接口. Collection接口定义 体系结构的根接口,代表一组对象,有两个 ...
- VMware网络连接模式(桥接、NAT以及仅主机模式的详细介绍和区别)
VMware 桥接模式 VMware桥接模式,也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络(例如图中所示的局域网 ...
- 使用Maven导入MySQL驱动包遇到的问题
问题描述 今天在使用Maven导入MySQL数据库驱动包依赖后,直接运行项目,出现错误. java.sql.SQLException: No suitable driver found for jdb ...
- js中全局和局部变量的区别
2 3 4 5 6 7 8 9 10 <script type="text/javascript"> var a = 1; function hehe() { ...
- NSArray基本概念
1.NSArray的基本概念 什么是NSArray? NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的弊端 int array[4] = {10, 8 ...
- Idea快捷键---根据自己使用情况持续更新
查看接口的实现类 -->ctrl+alt+b 查看继承关系 -->ctrl+h 快速查看上次查看代码的位置: -->ctrl+alt+方向键(注意与intel显卡快捷键的冲突,如有冲 ...
- redis集群升级,数据迁移及校验
本次由于安全漏洞原因,需要降redis3升级为redis6,涉及到数据迁移及校验等,用阿里redis-shake迁移工具迁移,并用阿里RedisFullCheck工具进行数据比对 一.新redis安装 ...
- synchronize类锁用父类作为锁能否锁住代码块
如果有一个父类,Demo如下 public class Demo { public void demo1(){ synchronized (Demo.class){ while (true){ Sys ...