• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Thinkphp5框架实现图片、音频和视频文件的上传功能详解

php 搞代码 4年前 (2022-01-01) 38次浏览 已收录 0个评论

这篇文章主要介绍了Thinkphp5框架实现图片、音频和视频文件的上传功能,结合实例形式分析了thinkPHP5文件上传的原理、操作步骤、实现方法及相关注意事项,需要的朋友可以参考下

本文实例讲述了Thinkphp5框架实现图片、音频和视频文件的上传功能。分享给大家供大家参考,具体如下:

首先是同步上传,最为基础的上传的方式,点击表单提交之后跳转那种。如下前端代码

   <title>上传文件</title>  <br>

注意这里的enctype必须enctype="multipart/form-data",方案必须是post。后端代码直接拿tp5的官网示例代码吧:

 public function upload(){ // 获取表单上传文件 例如上传了001.jpg-600 $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-600 echo $<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>info->getSaveName(); // 输出 42a79759f284b767dfcb2a0197904287.jpg-600 echo $info->getFilename(); }else{ // 上传失败获取错误信息 echo $file->getError(); } }; } 

后面发现自己做的好简单,于是改进了前端代码,并且前端代码实现了文件类型校验,将同步改为ajax异步提交,同时改为formdata提交文件数据,后台代码没有太大变化,返回了提交文件的链接,而前端预览只能预览图片。改过之后的前端代码为

   <title>上传文件</title>  <div id="test"></div><button id="btn">点击上传</button><div> </div>

后端代码改进了一下

 public function uploadAjax(){ // 获取表单上传文件 例如上传了001.jpg-600 $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-600 $info->getSaveName(); // 输出 42a79759f284b767dfcb2a0197904287.jpg-600 $info->getFilename(); $src["src"]=DS.'public'.DS.'uploads'.DS.$info->getSaveName(); }else{ // 上传失败获取错误信息 $file->getError(); } }; return json_encode($src); } 

细节方面,比如上传之后报错返回信息没有做处理。

整体实现就是这样,作为一个常用的业务场景,这个本身还有很多改进的余地,比如删除已经上传的文件或者校验文件是否已经上传,如果上传不能二次上传或者删除掉前面上传的。当然如果文件名称不做处理而是原名称上传,则上传之后会覆盖原文件。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

以上就是Thinkphp5框架实现图片、音频和视频文件的上传功能详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Thinkphp5框架实现图片、音频和视频文件的上传功能详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址