下面为大家带来一篇thinkphp3.2简单解决多文件上传只上传一张的问题。内容挺不错的,现在就分享给大家,也给大家做个参考。
html简单页面:

index.html代码:
<form action="{:U('index/upload')}" method="post" enctype="multipart/form-data">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
文件上传:<input type="file" name = "test[]">
<input type="submit" value = "提交">
</form>控制器IndexController.class.php代码:
立即学习“PHP免费学习笔记(深入)”;
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$this->display();
}
public function upload(){
if(IS_POST){
$config = array(
'maxSize' => 3145728,
'rootPath' => './Uploads/',
'savePath' => '',
'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date','Ymd'),
);
$upload = new \Think\Upload($config);// 实例化上传类
$info = $upload->upload();
if(!$info) {
$this->error($upload->getError());
}else{
foreach($info as $file){
echo $file['savepath'].$file['savename'];
}
}
}else{
$this->display();
}
}
}上传结果显示:


好多人在进行多文件上传的时候,最后发现只是上传了一张,主要就是命名所致,因为是同样的名字,所以最后就剩一张图片
解决方法:第一种:
$config = array(
'maxSize' => 3145728,
'rootPath' => './Uploads/',
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date','Ymd'),
'saveRule' => '',
);置空$config里面的saveRule,上传后的名称为:59c8d38cdb968.jpg

若是感觉这种命名不可靠,可采取第二种方法:
$config = array(
'maxSize' => 3145728,
'rootPath' => './Uploads/',
'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date','Ymd'),
);设置$config中: 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
其最后的结果类似于:672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg

然,命名可根据需要自行修改,多文件上传方法很多,这里只是提供个简单便捷的方法!
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上就是关于Thinkphp3.2简单解决多文件上传以及只上传一张的问题解析的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号