Thinkphp多文件上传实现方法


Posted in PHP onOctober 31, 2014

本文实例讲述了Thinkphp多文件上传实现方法,分享给大家供大家参考。具体实现方法如下:

Thinkphp手册中对于多文件上传描述的很清楚:如果需要使用多个文件,只需要修改表单,把

<input type='file' name='photo'>

改为
<li><input type='file' name='photo1'></li>

<li><input type='file' name='photo2'></li>

<li><input type='file' name='photo3'></li>

或者

<li><input type='file' name='photo[]'></li>

<li><input type='file' name='photo[]'></li>

<li><input type='file' name='photo[]'></li>

暂且自己的上传表单域为两个,一个上传图片,一个上传视频。字段名为image、video。
html代码如下

图片:<input type="file" name="image[]">

 

视频:<input type="file" name="video[]">

model代码:
protected $info= '';

 

protected $_auto = array(

array('image','upload',3,callback),//自动完成方法

array('video','videoupload',3,callback), //自动完成方法

);//自动填充上传图片生成缩略图

protected function upload(){

$var = $_FILES['image']['name'];

import('ORG.Net.UploadFile');

$upload = new UploadFile();

$upload->saveRule  = time;

$upload->allowExts  = array('jpg', 'gif', 'png', 'zip','flv');

$upload->thumb = true;

//视频路径。。。只支持flv后缀,

$upload->videopath = './Public/upload/Video/';

$upload->savePath =  './Public/upload/images/';

$upload->thumbPrefix = '250_115_,150_110_,213_156_';

$upload->thumbMaxWidth='250,150,213';

$upload->thumbMaxHeight='115,110,156';

if(!in_array('',$var) || !in_array('',$_FILES['video']['name'])){

if(!$upload->upload()) {

echo $upload->getErrorMsg();die;

}else{

$this->info =  $upload->getUploadFileInfo();

if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){

return $this->info[1]['savename'];

}elseif(!in_array('',$var)){

return $this->info[0]['savename'];

}else{

return false;

}

 

}

}else{

return flase;

}

}

//上传视频

protected function videoupload(){

if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){

return $this->info[0]['savename'];

}elseif(!in_array('',$_FILES['video']['name'])){

return $this->info[1]['savename'];

}else{

return false;

}

 

}

文章最后我来分析一下多文件上传原理吧,先来看看html代码
<li><input type='file' name='photo[]'></li>

<li><input type='file' name='photo[]'></li>

<li><input type='file' name='photo[]'></li>

这种就是把表单变量定义为数组,在php中数组特殊变量它可以存储多个不定长的内容,所以我们就可以自定多文件上传框了,那么在php处理时我们要如何操作,下面看例子。
protected $_auto = array(

array('image','upload',3,callback),//自动完成方法

array('video','videoupload',3,callback), //自动完成方法

);//自动填充上传图片生成缩略图

这个是告诉thinkphp是数组变量了,并不需要像原生态的php中来判断遍历数组长度再一个个上传的代码了,因为了thinkphp己经做好了。

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

PHP 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
深入理解php的MySQL连接类
Jun 07 PHP
yii实现创建验证码实例解析
Jul 31 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
Yii框架form表单用法实例
Dec 04 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 #PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 #PHP
Laravel 4 初级教程之安装及入门
Oct 30 #PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 #PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 #PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 #PHP
ThinkPHP模板中数组循环实例
Oct 30 #PHP
You might like
PHP开发入门教程之面向对象
2006/12/05 PHP
javascript中&quot;/&quot;运算符常见错误
2010/10/13 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
在Python中使用模块的教程
2015/04/27 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
python读取文件名称生成list的方法
2018/04/27 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
Python之指数与E记法的区别详解
2019/11/21 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
params有什么用
2016/03/01 面试题
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
公司会议策划方案
2014/05/17 职场文书
解放思想演讲稿
2014/09/11 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js