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 数字左侧自动补0
Mar 31 PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
PHP单态模式简单用法示例
Nov 16 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 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制作文本式留言板
2015/03/18 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
javascript 随机展示头像实现代码
2011/12/06 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
深入理解Python中的*重复运算符
2017/10/28 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
医德考评自我评价
2014/09/14 职场文书