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下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php数组添加元素方法小结
Dec 20 PHP
php实现简单的语法高亮函数实例分析
Apr 27 PHP
php判断用户是否手机访问代码
Jun 08 PHP
php链表用法实例分析
Jul 09 PHP
js代码实现微博导航栏
Jul 30 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
实现php删除链表中重复的结点
Sep 27 PHP
PHP实现八皇后算法
May 06 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
解析crontab php自动运行的方法
2013/06/24 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
jquery 防止表单重复提交代码
2010/01/21 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
javaScript基础详解
2017/01/19 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
vue写一个组件
2018/04/09 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
python实现黑客字幕雨效果
2018/06/21 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
2014年终工作总结范本
2014/12/15 职场文书
齐云山导游词
2015/02/06 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
Python如何识别银行卡卡号?
2021/06/10 Python