Thinkphp5如何实现图片、音频和视频文件的上传功能
发布时间 - 2021-06-03 00:00:00 点击率:次下面由thinkphp框架教程栏目给大家介绍thinkphp5实现图片、音频和视频文件的上传功能方法,希望对需要的朋友有所帮助!

首先是同步上传,最为基础的上传的方式,点击表单提交之后跳转那种。
如下前端代码
上传文件
注意这里的enctype必须enctype="multipart/form-data",方案必须是post。
后端代码直接拿tp5的官网示例代码吧:
public function upload(){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
echo $info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
echo $info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
echo $info->getFilename();
}else{
// 上传失败获取错误信息
echo $file->getError();
}
};
}后面发现自己做的好简单,于是改进了前端代码,并且前端代码实现了文件类型校验,将同步改为ajax异步提交,同时改为formdata提交文件数据,后台代码没有太大变化,返回了提交文件的链接,而前端预览只能预览图片。改过之后的前端代码为
上传文件
后端代码改进了一下
public function uploadAjax(){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
$test=request()->post("test");
$src=[];//返回文件路径
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
$info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
$info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
$info->getFilename();
$src["src"]=DS.'public'.DS.'uploads'.DS.$info->getSaveName();
}else{
// 上传失败获取错误信息
$file->getError();
}
};
return json_encode($src);
}细节方面,比如上传之后报错返回信息没有做处理。
整体实现就是这样,作为一个常用的业务场景,这个本身还有很多改进的余地,比如删除已经上传的文件或者校验文件是否已经上传,如果上传不能二次上传或者删除掉前面上传的。当然如果文件名称不做处理而是原名称上传,则上传之后会覆盖原文件。
相关推荐:最新的10个thinkphp视频教程
# 上传
# 上传文件
# 表单
# 错误信息
# 传了
# 后端
# 目录下
# 太大
# 改进了
# 给大家
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
java中使用zxing批量生成二维码立牌
jQuery中的100个技巧汇总
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
潮流网站制作头像软件下载,适合母子的网名有哪些?
BootStrap整体框架之基础布局组件
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
如何在服务器上三步完成建站并提升流量?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何基于云服务器快速搭建个人网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
中山网站制作网页,中山新生登记系统登记流程?
海南网站制作公司有哪些,海口网是哪家的?
js实现点击每个li节点,都弹出其文本值及修改
javascript读取文本节点方法小结
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
如何快速生成橙子建站落地页链接?
Laravel如何处理表单验证?(Requests代码示例)
QQ浏览器网页版登录入口 个人中心在线进入
七夕网站制作视频,七夕大促活动怎么报名?
Laravel如何使用withoutEvents方法临时禁用模型事件
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
公司网站制作价格怎么算,公司办个官网需要多少钱?
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
Laravel怎么连接多个数据库_Laravel多数据库连接配置
香港网站服务器数量如何影响SEO优化效果?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
如何在自有机房高效搭建专业网站?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
iOS UIView常见属性方法小结
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Java垃圾回收器的方法和原理总结
Laravel PHP版本要求一览_Laravel各版本环境要求对照
北京企业网站设计制作公司,北京铁路集团官方网站?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
Laravel如何与Pusher实现实时通信?(WebSocket示例)
智能起名网站制作软件有哪些,制作logo的软件?
Laravel如何使用Collections进行数据处理?(实用方法示例)
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
jQuery validate插件功能与用法详解
大学网站设计制作软件有哪些,如何将网站制作成自己app?
HTML 中动态设置元素 name 属性的正确语法详解

