Thinkphp多文件上传实现方法,Thinkphp框架实现多文

2019-09-30 10:06栏目:网络技术
TAG:

<?php
// $Horde: horde/lib/MIME.php,v 1.63 2001/08/08 21:00:27 chuck Exp $
$mime_types =
array(
        TYPETEXT => 'text', 'text' => TYPETEXT,
        TYPEMULTIPART => 'multipart', 'multipart' => TYPEMULTIPART,
        TYPEMESSAGE => 'message', 'message' => TYPEMESSAGE,
        TYPEAPPLICATION => 'application', 'application' => TYPEAPPLICATION,
        TYPEAUDIO => 'audio', 'audio' => TYPEAUDIO,
        TYPEIMAGE => 'image', 'image' => TYPEIMAGE,
        TYPEVIDEO => 'video', 'video' => TYPEVIDEO,
        TYPEOTHER => 'unknown', 'unknown' => TYPEOTHER
        );
$mime_encodings =
array(
        ENC7BIT => '7bit', '7bit' => ENC7BIT,
        ENC8BIT => '8bit', '8bit' => ENC8BIT,
        ENCBINARY => 'binary', 'binary' => ENCBINARY,
        ENCBASE64 => 'base64', 'base64' => ENCBASE64,
        ENCQUOTEDPRINTABLE => 'quoted-printable', 'quoted-printable' => ENCQUOTEDPRINTABLE,
        ENCOTHER => 'unknown', 'unknown' => ENCOTHER
        );
/**
* The MIME:: class provides methods for dealing with MIME standards.
*
* @author    Chuck Hagenbuch <chuck@horde.org>
* @version $Revision: 1.64 $
* @since     Horde 1.3

Thinkphp手册中对此多文本上传陈述的很精晓:就算急需采纳多个公文,只供给修改表单,把

本文实例陈述了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>
</ol>
或者

<input type='file' name='photo'>

<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>

改为

姑且自身的上传表单域为四个,二个上传图片,三个上传摄像。字段名字为image、video。

复制代码 代码如下:

html代码如下

<li><input type='file' name='photo1'></li>
<li><input type='file' name='photo2'></li>
<li><input type='file' name='photo3'></li>

 代码如下

或者

图片:<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;
}
 
}

<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>

小说最终小编来深入分析一下多文件上传原理吧,先来拜见html代码

一时半刻自身的上传表单域为五个,三个上传图片,多少个上传摄像。字段名字为image、video。
html代码如下

<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>
<li><input type='file' name='photo[]'></li>

复制代码 代码如下:

这种正是把表单变量定义为数组,在php中数组优秀变量它能够积攒四个不定长的内容,所以大家就足以自定多文件上传框了,那么在php处理时我们要怎么样操作,上边看例子。

图片:<input type="file" name="image[]">

protected $_auto = array(
array('image','upload',3,callback),//自动完结章程
array('video','videoupload',3,callback), //自动实现章程
);//自动填充上传图片生成缩略图

视频:<input type="file" name="video[]">

其一是报告thinkphp是数组变量了,并无需像原生态的php中来决断遍历数CEO度再三个个上传的代码了,因为了thinkphp己经做好了。

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框架程序设计有所援救。

版权声明:本文由澳门新葡亰平台游戏发布于网络技术,转载请注明出处:Thinkphp多文件上传实现方法,Thinkphp框架实现多文