利用Thinkphp怎么实现一个多文件上传功能

介绍

本篇文章为大家展示了利用Thinkphp怎么实现一个多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Thinkphp手册中对于多文件上传描述的很清楚:如果需要使用多个文件,只需要修改表单,把

代码如下:

& lt;输入类型=& # 39;文件# 39;name=& # 39;照片# 39;在

改为

代码如下:

& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39; photo1& # 39;祝辞& lt;/li>
& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39; photo2& # 39;祝辞& lt;/li>
& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;图3 # 39;祝辞& lt;/li>

或者

代码如下:

& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;照片[]& # 39;祝辞& lt;/li>
& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;照片[]& # 39;祝辞& lt;/li>
& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;照片[]& # 39;祝辞& lt;/li>

暂且自己的上传表单域为两个,一个上传图片,一个上传视频。字段名为图片,视频。
html代码如下

代码如下:

图片:& lt;输入类型=癴ile"name=靶蜗骩]“在
,
视频:& lt;输入类型=癴ile"name=笆悠礫]“在


模型代码:

代码如下:

保护$ info=& # 39; & # 39;;
,
保护数组$ _auto=(
数组(& # 39;图像# 39;& # 39;上传# 39;,3,回调),//自动完成方法
数组(& # 39;视频# 39;& # 39;videoupload& # 39;, 3,回调),//自动完成方法
);//自动填充上传图片生成缩略图
保护功能上传(){
$ var=$带有_file[& # 39;图像# 39;][& # 39;名字# 39;],
进口(& # 39;ORG.Net.UploadFile& # 39;);
上传=new还是美元();
上传→美元saveRule 美元=时间;
上传→allowExts =数组(& # 39;jpg # 39; & # 39; gif # 39;, & # 39; png # 39;, & # 39;邮政# 39;,& # 39;flv # 39;);
上传→美元拇指=true;
//视频路径…只支持flv后缀,
上传→美元videopath=& # 39;公共/上传/视频/?& # 39;;
上传→美元savePath=,& # 39;。/公共/上传/图片/& # 39;;
上传→美元thumbPrefix=& # 39; 250 _115_ 150 _110_ 213 _156_& # 39;;
上传→美元thumbMaxWidth=& # 39; 250150213 & # 39;;
上传→美元thumbMaxHeight=& # 39; 115110156 & # 39;;
如果(! in_array (& # 39; & # 39; $ var) | | ! in_array(& # 39; & # 39;带有_file美元[& # 39;视频# 39;][& # 39;名字# 39;])){
如果(! $上传→上传()){
echo $上传→getErrorMsg();死亡;
}其他{
$ this→信息=,上传→美元getUploadFileInfo ();
如果! in_array (& # 39; & # 39; $ var),,,,! in_array(& # 39; & # 39;带有_file美元[& # 39;视频# 39;][& # 39;名字# 39;])){
返回$ this→信息[1][& # 39;savename& # 39;],
} elseif (! in_array (& # 39; & # 39; $ var)) {
返回$ this→信息[0][& # 39;savename& # 39;],
}其他{
返回false;
}
,
其他}
} {
返回误;
}
}
//上传视频videoupload
保护功能(){
如果(! in_array (& # 39; & # 39; $ var),,,,! in_array(& # 39; & # 39;带有_file美元[& # 39;视频# 39;][& # 39;名字# 39;])){
返回$ this→信息[0][& # 39;savename& # 39;],
} elseif (! in_array(& # 39; & # 39;带有_file美元[& # 39;视频# 39;][& # 39;名字# 39;])){
返回$ this→信息[1][& # 39;savename& # 39;],
}其他{
返回false;
}
,
}


文章最后我来分析一下多文件上传原理吧,先来看看html代码

代码如下:

& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;照片[]& # 39;祝辞& lt;/li>
& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;照片[]& # 39;祝辞& lt;/li>
& lt; li> & lt;输入类型=& # 39;文件# 39;name=& # 39;照片[]& # 39;祝辞& lt;/li>


这种就是把表单变量定义为数组,在php中数组特殊变量它可以存储多个不定长的内容,所以我们就可以自定多文件上传框了,那么在php处理时我们要如何操作,下面看例子。

代码如下:

保护数组$ _auto=(
数组(& # 39;图像# 39;& # 39;上传# 39;,3,回调),//自动完成方法
数组(& # 39;视频# 39;& # 39;videoupload& # 39;, 3,回调),//自动完成方法
);//自动填充上传图片生成缩略图


这个是告诉thinkphp是数组变量了,并不需要像原生态的php中来判断遍历数组长度再一个个上传的代码了,因为了thinkphp己经做好了。

上述内容就是利用thinkphp怎么实现一个多文件上传功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

利用Thinkphp怎么实现一个多文件上传功能