// Image Address Desired Width Desired Height Desired Maximum Size KB Storage path name public function compressImg($srcFile,$to_width,$to_height,$maxFileSize,$local_dir,$filename) { $info = getimagesize($srcFile); $bits = get_headers($srcFile,true); $filesize = $bits[' content-length ']/1024; If ($filesize <= $maxFileSize) {return 0; } if ($filesize > 1024) { $i = 80; } elseif ($filesize > 500) { $i = 90; } else { $i = 99; $width = $info[0]; $height = $info[1]; Switch ($info[2]) {case 1: $im = imagecreateFromgIf ($srcFile); case 2: $im = imagecreateFromgIf ($srcFile); $img_type = "gif"; break; case 2: $im = imagecreatefromjpeg($srcFile); $img_type = "jpg"; break; case 3: $im = imagecreatefrompng($srcFile); $img_type = "png"; break; } do { if ($i < 0) { return -1; } if ($filesize > 1024) { $step = 5; } elseif ($filesize > 500) { $step = 3; } else { $step = 2; } $tmpFile = $local_dir . time() . '.'.$img_type; $now_img = imagecreateTruecolor ($to_width, $to_height); Imagecopyresampled ($now_img, $im, 0, 0, 0, $to_width, $to_height, $width, $height); imagejpeg($now_img, $tmpFile, $i); // Save imageDestroy ($now_img) with quality $I; $tmpFileList[] = $tmpFileList; $i -= $step; clearstatcache(); $filesize = filesize($tmpFile)/1024; } while ($filesize > $maxFileSize); copy($tmpFile, $filename); $_file($tmpFile) {if (is_file($tmpFile)) {@unlink($tmpFile); } // upload OSS $OSS = new OSS (); $object = 'uid' . UID . '/' . $filename; $oss = $Oss->ossUploadFile($object, $filename, true); $url = $oss['info']['url']; return $url; Public function getImg(){$local_dir = 'uploads/'; // Temporary storage path createFile($local_dir); $filename = "uploads/".time().'.jpg'; $srcFile = $srcFile; $url = $this - > compressImg ($srcFile, 200200, 5 $local_dir, $filename); dump($url); }Copy the code