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 相关文章推荐
十天学会php之第十天
Oct 09 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
Sep 30 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
来自phpguru得Php Cache类源码
Apr 15 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
PHP检测用户语言的方法
2015/06/15 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
python实现大文件分割与合并
2019/07/22 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
领导干部考察材料
2014/02/08 职场文书
辞职信标准格式
2015/02/27 职场文书
病危通知单
2015/04/17 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript