Thinkphp多文件上传落成情势,补助多文本上传

2019-10-03 18:50栏目:网络技术
TAG:

上传表单
上传表单无需特别管理,上边是一个最简便的单文本上传表单:

上传类的利用很简单,假使是率先次选取上传作用的情人必要静心的是html提交表单中的表单属性要丰硕enctype属性,如:

本文实例陈说了Thinkphp多文件上传完结形式,分享给大家供大家参照他事他说加以考察。具体落到实处格局如下:

 注意,表单必需增多enctype="multipart/form-data"属性技巧补助文件上传功能。

复制代码 代码如下:

Thinkphp手册中对此多文本上传描述的很领会:如若须求使用三个文本,只供给修改表单,把

 代码如下

 <form method="post" action="upload.php"  enctype="multipart/form-data">
 <input type='file' name='file'>
 <input type='submit' value='提交'>
 </form>

复制代码 代码如下:

<form id="upload" method='post' action="__URL__/upload/" enctype="multipart/form-data">
<input name="image" type="file" />
<input type="submit" value="提交" >
</form>

ThinkPHP的UploadFile类在文件../ThinkPHP/Extend/Library/O昂科拉G/Net/UploadFile.class.php中:

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

上传操作
接下去正是概念上传操作了,我们在Action调节器中加多upload操作方法如下:

复制代码 代码如下:

改为

要使用上传功用,首先第一步正是实例化上传类:

        //引入UploadFile类
        import('ORG.Net.UploadFile');
        //实例化UploadFile类
        $upload  = new UploadFile();
        //设置文件大小
        $upload -> maxSize = 3292200;
        //设置文件保留法规独一
        $upload->saveRule = 'uniqid';
        //设置上传文件的格式
        $upload -> allowExts = array('jpg','png','jpeg');
        //保存路线
        $upload->savePath ='./Public/Uploads/';
        //设置须要转移缩略图,仅对图像文件有效
        $upload->thumb = true;
        //设置需求改变缩略图的文本前缀
        $upload->thumbPrefix = 'm_';  //生产缩略图也得以依附需求改造1张或多张,2张:'m_,s_'
        //设置缩略图最小幅度面
        $upload->thumb马克斯Width = '150';//2张的两样设置:'150,200'
        //设置缩略图最大惊人
        $upload->thumbMaxHeight = '200';
        //删除原图
        $upload->thumbRemoveOrigin = true;
        //上传战败再次来到错误音信
        if(!$upload->upload()){
           $this->error($upload->getErrorMsg());
        }else{
           $this->success('上传成功');
           //获取上传文件的音信
           $inf= $upload->getUploadFileInfo();
        }

复制代码 代码如下:

 代码如下

透过设置后就能够轻巧地上传文书,同临时间,$upload的getUploadFileInfo能够赢得上传的文件的音信。

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

import('ORG.Net.UploadFile');

您大概感兴趣的篇章:

  • 多少个非凡的PHP文件上传类分享
  • PHP图片上传类带图片显示
  • php 图片上传类代码
  • php 文件上传类代码
  • php决断文件上传类型及过滤不安全部据的不二秘诀
  • php版Ali云OSS图片上传类详解
  • PHP完毕多图片上传类实例
  • PHP5+UTF8多文书上传类
  • php可生成缩略图的公文上传类实例
  • 一个那个实用的php文件上传类

或者

$upload = new UploadFile();// 实例化上传类

复制代码 代码如下:

//参数设置

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

//设置附属类小部件上传目录
$upload->savePath = './Uploads/';
//设置须要转移缩略图,仅对图像文件有效
$upload->thumb = true;
//设置供给转移缩略图的文件后缀
$upload->thumbPrefix = 'm_,s_';  //生产2张缩略图
//设置缩略图最小幅面
$upload->thumbMaxWidth = '200,50';
//设置缩略图最大中度
$upload->thumbMaxHeight = '200,50';

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

//文件上传代码

复制代码 代码如下:

public function upload() {
    import('ORG.Net.UploadFile');
    $upload = new UploadFile();// 实例化上传类
    $upload->maxSize  = 3145728 ;// 设置附属类小部件上传大小
    $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附属类小部件上传类型
    $upload->savePath =  './Public/Uploads/';// 设置附属类小部件上传目录
    if(!$upload->upload()) {// 上传错误提示错误音讯
        $this->error($upload->getErrorMsg());
    }else{// 上传成功
        $this->success('上传成功!');
    }
}

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

留意只协理php文件哦,别的类其余文件会唤醒地下文件的。

视频:<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;
}

<input type='file'  name='image1'>
<input type='file'  name='image2'>
<input type='file'  name='image3'>

}
}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;
}

要么像原生态php多文件上传的写法

}

<input type='file' name='image[]'>
<input type='file' name='image[]'>
<input type='file' name='image[]'>

小说最终本人来深入分析一下多文书上传原理吧,先来看看html代码

php处理措施依旧单文件上传的没什么变化

复制代码 代码如下:

 代码如下

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

import("ORG.Net.UploadFile");
$upload = new UploadFile();
foreach ($_FILES as $key=>$file){
    if(!empty($file['name'])) {
        $upload->autoSub = true;
        $upload->subType   =  'date';
        $info =  $upload->uploadOne($file);
        if($info){ // 保存附属类小部件消息
            M('Photo')->add($info);
        }else{ // 上传错误
            $this->error($upload->getErrorMsg());
        }
    }
}

这种正是把表单变量定义为数组,在php中数组特别变量它能够积攒多少个不定长的剧情,所以大家就足以自定多文件上传框了,那么在php管理时大家要哪些操作,上边看例子。

新型版本的上传类包蕴的职能如下(有些功效要求整合ThinkPHP系统其他类库):
大致传作用
支撑批量上传
帮衬生成图片缩略图
自定义参数上传
上传检查测验(满含大小、后缀和类别)
支撑覆盖方式上传
支撑上传类型、附属类小部件大小、上传路线定义
支撑哈希大概日期子目录保存上传文件
帮忙动态定义子目录保存文件
上传图片的安全性检查测验
协助上传文件命名准则
援救对上传文件的Hash验证

复制代码 代码如下:

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

那几个是告诉thinkphp是数组变量了,并无需像原生态的php中来判断遍历数老董度再贰个个上传的代码了,因为了thinkphp己经做好了。

愿意本文所述对我们的ThinkPHP框架程序设计具备助于。

版权声明:本文由澳门新葡亰平台游戏发布于网络技术,转载请注明出处:Thinkphp多文件上传落成情势,补助多文本上传