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 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
我的论坛源代码(六)
Oct 09 PHP
php 中文和编码判断代码
May 16 PHP
二招解决php乱码问题
Mar 25 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
php判断linux下程序问题实例
Jul 09 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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截取中文字符串不乱码的方法
2013/12/25 PHP
php中的strpos使用示例
2014/02/27 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
Smarty保留变量用法分析
2016/05/23 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
Python3 log10()函数简单用法
2019/02/19 Python
python实现矩阵打印
2019/03/02 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Numpy 多维数据数组的实现
2020/06/18 Python
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
高三毕业生自我鉴定
2013/12/20 职场文书
小区停车场管理制度
2014/01/27 职场文书
迟到早退检讨书
2014/02/10 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
民事调解书范文
2015/05/20 职场文书
安全教育培训制度
2015/08/06 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
《春酒》教学反思
2016/02/22 职场文书
详解Python内置模块Collections
2022/03/22 Python