Thinkphp3.2.3 多图上传,同类型只能上传一张问题,
例如一次性上传多张 .jpg 文件,只能上传最后一张,
问题在于,同名,只保存一张,找了很多方法,问题就在于 saveName 上
在 App->Common->Common->function.php 下加入
function guid()
{
if (function_exists('com_create_guid')) {
return com_create_guid();
} else {
mt_srand((double) microtime() * 10000);
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);
$uuid = chr(123)
. substr($charid, 0, 8) . $hyphen
. substr($charid, 8, 4) . $hyphen
. substr($charid, 12, 4) . $hyphen
. substr($charid, 16, 4) . $hyphen
. substr($charid, 20, 12)
. chr(125);
return $uuid;
}
}
再在 upload方法中 saveName = array(‘guid’, ‘’);
完整代码如下
public function upload()
{
$upload = new \Think\Upload();
$upload->maxSize = 0;
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');
$upload->rootPath = './Public/upload/';
$upload->savePath = 'thumb/';
// $now = $_SERVER['REQUEST_TIME'];
$upload->saveName = array('guid', '');
$info = $upload->upload();
if (!$info) {
$this->error($upload->getError());
} else {
$this->success('上传成功!');
}
}
前端代码
上面出来的图片路径是 {5141258E-8008-E064-26EB-4EC6642B71AB} 这样的,我们优化一下,把左右的 大括号去掉,并把中划线改成下划线。
if (function_exists('com_create_guid')) {
return com_create_guid();
} else {
mt_srand((double) microtime() * 10000);
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(95); //下划线
$uuid = substr($charid, 0, 8) . $hyphen
. substr($charid, 8, 4) . $hyphen
. substr($charid, 12, 4) . $hyphen
. substr($charid, 16, 4) . $hyphen
. substr($charid, 20, 12);
return $uuid;
}
这样就变成 C4D414B3_D751_173B_BCD9_F8C8CE95C5F5.jpg