thinkphp 用七牛云异步上传文件(前后端代码)

2023-10-30

1、首先创建一个七牛云帐号,完成后,添加对象存储

2、创建成功后,右上角“密钥管理 查看秘钥,找到AK、SK;

3、打开thinkphp的配置文件,将此代码加入

'CONFIG_QINIU' => 
array (
    'accessKey' => '你的AK',
    'secretKey' => '你的SK',
    'domain' => '融合CDN域名',
    'bucket' => '存储文件的空间名称',
  ),

4、HTML页面代码

<tr style="height: 100px;">
              <th width="70">封面视频 </th>
              <td>
              	
				<button type="button" class="layui-btn" id="cover">
				     <i class="layui-icon">&#xe67c;</i>视频上传
				</button>&nbsp;&nbsp;
				<input type="text"  name="cover_file_name" value="" readonly="readonly" style="height: 30px; line-height: 30px;" />
				<input type="hidden" name="cover_file_url" value="" />
				&nbsp;&nbsp;
				<button type="button" onclick="cancel_1();" class="layui-btn layui-btn-warm">视频取消</button>
				<div>
					windows:仅允许上传 mp4视频,视频编码H264,文件大小不超过 6M。
			    </div>
									
			 </td>
</tr>

HTML 页面截图

5、上传文件JS代码

<!--- 封面视频  --->
<script type="text/javascript">
	
	  layui.use('upload', function(){
	  var upload = layui.upload;
	  //执行实例
	  var uploadInst = upload.render({
		    elem: '#cover', //绑定元素
		    exts: 'mp4',  // 允许上传的文件后缀
		    size: 1024*6,  // 文件大小,单位KB
		    accept: 'file', //普通文件
		    url: "{:U('AdminPage/uploadFile')}", //上传接口
		    choose: function(obj){
		    	// 选择文件回调
		    	var is_save = $('input[ name = cover_file_url]').val();
		    	if(is_save == ''){
		    		layer.load();
		    	}else{
		    		layer.msg('已存在视频,请先删除当前视频');
		    		return false;
		    	}
		    },
		    done: function(res){
		      //上传完毕回调
		      setTimeout(function(){
					  layer.closeAll('loading');
					}, 100);
		      if(res.success){
		      	 layer.alert(res.success, {icon: 6});
		         $('input[name = cover_file_name]').val(res.file_name);
		         $('input[name = cover_file_url]').val(res.file_url);
		         return false;
		      }else{
		      	layer.alert(res.error, {icon: 5});
		        return false;
		      }
		    }
	  });
	});

// 封面视频上传取消
	function cancel_1(){
		
  	   $('input[name = cover_file_name]').val('');
       $('input[name = cover_file_url]').val('');
       layer.msg('封面视频已取消');
       return false;
		  
	}

</script>

6、下载七牛云SDK包,更名为:Qiniu,并放在此处

7、后台控制 器代码

public function uploadFile(){
		
		vendor("Qiniu.autoload");
		$Qiniu_config = C(CONFIG_QINIU);

		$auth = new \Qiniu\Auth($Qiniu_config['accessKey'], $Qiniu_config['secretKey']);
		// 生成上传Token
		$token = $auth->uploadToken($Qiniu_config['bucket']);
		
		if(!empty($_FILES)){
			$uploadMgr = new \Qiniu\Storage\UploadManager();
			$filePath = $_FILES['file']['tmp_name'];             //获取上传的图片、文件
			$fileName = date('YmdHis').'-'.mt_rand(0,9).'.mp4';  //自定义保存在七牛的文件名
			$fileUrl = $Qiniu_config['domain'].'/'.$fileName;
			list($ret,$err) = $uploadMgr->putFile($token,$fileName,$filePath);
			echo json_encode(array('success'=>'上传成功','file_url'=>'http://'.$fileUrl,'file_name'=>$fileName));
	    	exit;
	    }else{
	    	echo json_encode(array('error'=>'未上传文件视频'));
	    	exit;
	    }
        
	}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

thinkphp 用七牛云异步上传文件(前后端代码) 的相关文章

  • axios自定义请求头跨域,thinkphp设置

    axios添加自定义请求头 在axios拦截器中 headers XXX 61 XX 配置后 thinkphp 返回跨域 需要对thinkphp中间件进行重新设置 主要配置在tp 复制 vendor topthink framework s
  • 微信公众号配置token

    1 在微信公众平台开发 基本设置页面 点击 修改配置 按钮 填写服务器地址 URL Token和EncodingAESKey token可以任意填写 对应验证的token URL对应是可以访问到 验证token的方法 的链接 2 代码中进行
  • thinkphp6 入门(1)--安装、路由规则、多应用模式

    一 安装thinkphp6 具体参考官方文档 安装 ThinkPHP6 0完全开发手册 看云 下面仅列举重要步骤 ThinkPHP6 0的环境要求如下 PHP gt 7 2 5 1 安装Composer 2 安装稳定版thinkphp 如果
  • thinkphp6 入门(3)--获取GET、POST请求的参数值

    一 Request对象 thinkphp提供了Request对象 其可以 支持对全局输入变量的检测 获取和安全过滤 支持获取包括 GET POST REQUEST SERVER SESSION COOKIE ENV等系统变量 以及文件上传信
  • 修复PHP扫描漏洞

    1 TLS 1 0 enabled 报告描述 修复方案 参考网站 https blog csdn net a1368783069 article details 85064682 如果使用chrome浏览器依次打开 右键 gt 审查 ins
  • 震惊,微信小程序可以设置网络字体!真香

    准备工作 获取字体链接 还原设计稿的时候需要用到如下特殊字体 google 的 Montserrat https fonts google com specimen Montserrat 选择这个字体 下载全部字体 将本地的字体文件上传到自
  • php 实现excel打包下载

    场景说明 举例说明 一个表单下面有多个提交的留言 导出这些留言 并且一个表单是一个excel 生成zip压缩包 msgList是数据 这里我将要导出的列表 列标题 名称都放在了一个变量中传递过来了 具体的数据结构如下 msgList for
  • 七牛云完整详细配置(从零到一)

    创建存储空间 自定义域名 配置域名的 CNAME 1 复制刚刚新建的域名的CNAME 2 登录域名服务商 这里以阿里云为例 的控制台 添加域名解析 保存后回到七牛存储空间的控制台 可以看到加速域名绑定状态为处理中 最久应该是10分钟 使用七
  • ThinkPHP5之多语言切换

    T和inkPHP5的多语言切换是个人比较欣赏的一点 真是佩服设计者 怎么想到多语言切换的 在实际开发过程中 往往不是单一语言的项目 涉及多语言的使用 这时需要多语言切换 关键函数 Lang setAllowLangList 多语言的切换函数
  • 七牛云对象存储实现文件的上传与下载

    今天记录下通过七牛云文件存储来实现文件的上传与下载 文件上传 上传 throws FileNotFoundException private static void upload throws FileNotFoundException 构
  • tp5中树状图数据格式的返回

    1 条件 数据库中的数据必须是无限递归数据 2 数据处理 public function treeListApi list this gt db class gt field id name parent id gt where is de
  • ThinkPHP表单验证规则归纳总结

    格式验证类 require isRequire 不得为空 number isNumber 验证字段是否为纯数字 integer isInteger 验证字段是否为整数 float isFloat 验证字段是否为浮点数 boolean isB
  • ThinkPHP 的join关联查询不使用默认的表前缀

    关于ThinkPHP 的关联查询 官方文档是这样描述的 上述join函数中需要三个参数 分别是 join 要关联的 完整 表名以及别名 支持三种写法 写法1 完整表名或者子查询 gt 别名 写法2 完整表名 别名 写法3 不带数据表前缀的表
  • thinkphp 随笔——模型更新成功返回的数据

    thinkphp 随笔 模型更新成功返回的数据 先上图 这是我修改了一个表内的 value 字段 修改成功之后返回了这个字段的最新值 thinkphp 随笔 个人博客 http www sharekong xyz 欢迎访问
  • thinkphp6 入门教程合集(更新中)

    thinkphp6 入门 1 安装 路由规则 多应用模式 thinkphp6 入门 1 安装 路由规则 多应用模式 软件工程小施同学的博客 CSDN博客 thinkphp6 入门 2 视图 渲染html页面 赋值 thinkphp6 入门
  • PHP基础巩固【PHP导入导出EXCEl,TP实用封装函数,可定义表格样式】

    这个方法是自己封装了 方法确实也好用 自己也用了好几年了 但是最近发现好多小年轻用到都是PhpOffice 咱也应该与时俱进 就先把这方法分享出来 等熟悉下phpoffice再贴出更新后的版本 把以下代码写入公共函数 导入EXCEL par
  • 一款经典的ThinkPhp6开发的CMS内容管理系统

    项目介绍 一款 PHP 语言基于 ThinkPhp6 x Layui MySQL等框架精心打造的一款模块化 插件化 高性能的前后端分离架构敏捷开发框架 可用于快速搭建前后端分离后台管理系统 本着简化开发 提升开发效率的初衷 框架自研了一套个
  • 网站报错 :SLQSTATE[HY000]:General error:145 Table ‘./**@002******@/002ecn/ey_config‘ is mar

    后台使用过程中 因为某个操作而出现报错 SQLSTATE HY000 General error 145 Table 002 002ecn ey config is marked as crashed and should be repai
  • ThinkPHP5多语言切换项目实战

    ThinkPHP5多语言切换实战 1 在配置文件中开启多语言配置 2 然后添加多语言目录 这里创建你需要的语言包 在语言包里定义需要翻译的文本 中英文数组的键名写成一致 然后在html文件里输入 lang 键名 对应的键名 就是下图的写法
  • thinkphp6 入门(5)-- 模型是什么 怎么用

    一 模型 MVC架构 之前开发一个功能 后端为在控制器 C 中写 php SQL 前端为在页面 V 中写html css js 这就形成了 VC 架构 但是发现 相同的数据逻辑 SQL 在不同的功能中可能被用到 所以可以把数据逻辑 SQL

随机推荐

  • [关系图谱] 二.Gephi导入共线矩阵构建作者关系图谱

    本文主要讲解Gephi绘制作者间的关系图谱 该软件可以广泛应用于社交网络 知识图谱分析 推荐读者使用 这是非常基础的一篇文章 重点讲解Gephi使用方法 希望对大家有所帮助 推荐前文 python数据挖掘课程 十七 社交网络Networkx
  • 算法知识点

    维生素C吃多了会上火 个人CSDN博文目录 2022蓝桥杯 目录 语法 基础算法 提升算法 语法 指针 标准输入输出 队列 结构体 c STL 基础算法 排序算法 树 二叉树 提升算法
  • Ping工具ICMP报文学习

    首先 这里有一个很好的博客 入口 先说个结论 Ping是通过IP ICMP协议发出去的 这跟我们传统UDP和TCP不一样 其通过创建套接字直接从IP层接受数据 具体可以参照上述文档 为什么ICMP的ping和tracert不经过tcp或ud
  • 面向对象编程的三大特性

    面向对象编程主要体现为三个特性 1 封装性 面向对象编程的核心思想之一就是将数据和对数据的操作封装在一起 通过抽象 即从 具体的实例中抽取出共同的性质形成一般的概念 例如类的概念 Java 中属性的封装 无特殊情况都是用的 private
  • InputAction的使用

    感觉Unity中InputAction的使用 步步都是坑 需求点介绍 当用户长按0 5s 键盘X或者VR left controller primaryButton 即X键 时 显示下一个图片 步骤总览 创建InputAction资产 将该
  • 数据库杂谈(三)——关系代数

    3 形式化关系查询语言 摘要 关系代数是一种抽象的查询语言 用对关系的运算来表达查询 作为研究关系数据语言的数学工具 在本文中 我们不仅谈论关系代数的知识点 而且还配备了对应的练习题 文章目录 3 形式化关系查询语言 3 1 关系代数 3
  • 【笔记】C++笔记

    1 书写HelloWorld include
  • ICML 2015压轴讨论总结:6大神畅谈深度学习的未来

    原文地址 http www csdn net article 1970 01 01 2825290
  • Error during WebSocket handshake: Unexpected response code: 404,springboot整合websocket出错

    Error during WebSocket handshake Unexpected response code 404 浏览器访问websocket出现错误 一 运行环境 二 需要引入的包 三 项目路径 四 工具类 五 静态页面以及js
  • CPU一级缓存L1 D-cache\L1 I-cache与二级缓存L2 cache深度分析

    CPU缓存 通过优化的的读取机制 可以使CPU读取缓存的命中率非常高 大多数CPU可达90 左右 也就是说CPU下一次要读取的数据90 都在缓存 SRAM 中 只有大约10 需要从内存 DRAM DDR等 读取 这大大节省了CPU直接读取内
  • 算法篇:贪心算法解决田忌赛马问题

    田忌赛马 贪心算法 问题分析 这是一道很经典的贪心算法入门题 这道题贪心的思想是 要把每一匹马的作用发挥到最大 把已 方赢的概率增加到最大 我是从双方慢马的角度来分析的 其实快马和慢马的思路差不多 用田忌最慢的马与王最慢的马相比较 1 如果
  • Spring 中如何为Bean注入集合呢?

    转自 Spring 中如何为Bean注入集合呢 下文讲述Spring中为Bean注入集合的方法分享 如下所示 常见的集合类型有 List Set Map 和 properties 标签 集合名称 说明
  • DC-DC电源转换电路设计

    第1条 搞懂DC DC电源怎么回事 DC DC电源电路 又称为DC DC转换电路 其主要功能就是进行输入输出电压转换 一般我们把输入电源电压在72V以内的电压变换过程称为DC DC转换 常见的电源主要分为车载与通讯系列和通用工业与消费系列
  • 【ES】多字段聚合分析

    public static Map
  • Vscode python配置了numpy包之后无法调用

    如果之前已经在vscode中配置好了numpy等其他库并且运行成功了 突然换了一个文件打开 如果发现找不到numpy库 很大可能是vscode将你的python解释器给更换了 如上所示 除了自己安装的python解释器之外 还有内置的和其他
  • 《QDebug 2023年6月》

    一 Qt Widgets 问题交流 二 Qt Quick 问题交流 1 Qt5 的 QML Settings 没有设置编码的接口 Qt6 虽然移除了 QSettings 的 setIniCodec 接口 默认为 utf8 但是 Qt5 这个
  • FPGA — BRAM 队列实践

    使用软件 Vivado 开发板 EGO1采用Xilinx Artix 7系列XC7A35T 1CSG324C FPGA BRAM 队列实践 功能描述 功能实现 1 添加BRAM的IP 2 数码管显示 3 时钟分频 4 按键消抖 5 顶层设计
  • Java-Exception-异常处理

    一 基本介绍 异常处理就是当异常发生时 对异常处理的方式 二 异常处理的方式 1 try catch finally 程序员在代码中捕获发生的异常 自行处理 2 throws 将发生的异常抛出 交给调用者 方法 来处理 最顶级的处理者就是J
  • 【Android】从SurfaceFlinger中获取各layer图片(4)再回顾

    从SurfaceFlinger中获取各layer图片的试验可以加深对GraphicBuffer和Layer的理解 dumpsys SurfaceFlinger中打印的Slot信息中有GraphicBuffer的指针 可以帮助我们了解Queu
  • thinkphp 用七牛云异步上传文件(前后端代码)

    1 首先创建一个七牛云帐号 完成后 添加对象存储 2 创建成功后 右上角 密钥管理 查看秘钥 找到AK SK 3 打开thinkphp的配置文件 将此代码加入 CONFIG QINIU gt array accessKey gt 你的AK