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 相关文章推荐
example1.php
Oct 09 PHP
php cookie 登录验证示例代码
Mar 16 PHP
PHP文件操作实现代码分享
Sep 01 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 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性能优化 产生高度优化代码
2011/07/22 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
Extjs 几个方法的讨论
2010/01/28 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Python 内存管理机制全面分析
2021/01/16 Python
Python实现京东抢秒杀功能
2021/01/25 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
销售开票员岗位职责
2015/04/15 职场文书
导游词之天津盘山
2019/11/01 职场文书