接上篇文章修改2处代码
后端代码部分修改如下:
1、调整缩略图的固定长宽为等比例缩放
//获取原始图片的信息
$img_info = getimagesize($item->getPathName());
$pic_width=$img_info[0];
$pic_height=$img_info[1];
$width=100;
$height=100;
if($pic_width>$pic_height){
$height=(int)(($pic_height/$pic_width)*$width);
}elseif ($pic_width<$pic_height){
$width=(int)(($pic_width/$pic_height)*$height);
}
if ($ext == 'jpg' | $ext == 'png' | $ext == 'jpeg') {
if ($type == "image/png" | $type == "image/jpg" | $type == "image/jpeg") {
if ($size <= 1024 * 1024 * 5) {
//移动文件到指定路径
$data = $item->move($path, $filename);
$imagepath[] = $data -> getPathname();
//创建缩略图
$image = Image::make($data)->resize($width, $height);
// // 保存缩略图
$image->save($thumbpath . $image->basename);
$thumbimgpath[] = $thumbpath . $image->basename;
2、修复一处多个图片同时上传时,导致部分图片上传丢失的BUG。
原因:在网络传输速率,和服务器响应速率都很快的情况下,1秒内能上传至服务器多张图片,而图片文件名的命名方式采用的是时间戳;造成了多张图片丢失,其实是被最后一张图片覆盖了。
现调整"$filename = date(“YmdHms”) . ‘.’ . $ext; "为如下代码:
$filename = uniqid(mt_rand(), true) . '.' . $ext;