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(7) php 字符串相关应用
Mar 05 PHP
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP的imageTtfText()函数深入详解
Mar 03 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
PHP加密技术的简单实现
2016/09/04 PHP
详解php中的implements 使用
2017/06/13 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
WebPack配置vue多页面的技巧
2018/05/15 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Python算法应用实战之栈详解
2017/02/04 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python三大神器之fabric使用教程
2019/06/10 Python
pycharm 安装JPype的教程
2019/08/08 Python
快速查找Python安装路径方法
2020/02/06 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
上班看电影检讨书
2014/02/12 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
好人好事新闻稿
2015/07/17 职场文书
二年级数学教学反思
2016/02/16 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang