有人可以幫我找出爲什麼這個功能不起作用形式。php創建服務器上的圖像縮略圖
給函數的參數是:
$ pathToImages是一個完整的路徑開始$ _SERVER [「DOCUMENT_ROOT」]
$ pathToThumbs是它實際上是一個名爲$ pathToImages
function createThumbs($pathToImages, $pathToThumbs) {
$dir = opendir($pathToImages);
while (false !== ($fname = readdir($dir))) {
if (is_file($pathToImages . $fname)) {
$info = pathinfo($pathToImages . $fname);
if (strtolower($info['extension']) == 'jpg' || strtolower($info['extension']) == 'jpeg') {
list($width, $height, $type) = getimagesize($pathToImages . $fname);
switch ($type) {
case 1: $img = imagecreatefromgif($pathToImages . $fname);
break;
case 2: $img = imagecreatefromjpeg($pathToImages . $fname);
break;
case 3: $img = imagecreatefrompng($pathToImages . $fname);
break;
case 6: $img = imagecreatefromwbmp($pathToImages . $fname);
break;
default: $img = imagecreatefromjpeg($pathToImages . $fname);
};
$maxWidth = 164;
$maxHeight = 164;
if ($width > $height) {
$new_width = $maxWidth;
$new_height = floor($height * ($maxWidth/$imgw));
} else {
$new_height = $maxHeight;
$new_width = floor($width * ($maxHeight/$height));
};
$tmp_img = imagecreatetruecolor($new_width, $new_height);
// imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($tmp_img, $pathToThumbs . $fname);
imagedestroy($tmp_img);
imagedestroy($img);
};
};
};
closedir($dir);
}
歡迎來到Stack Overflow。我已經修復了您的帖子中的一些英文問題。我也通過在行尾使用兩個空格來分隔參數描述。 這將有助於瞭解它如何失敗。是否有錯誤訊息? –
親愛的Rohit Gupta! 感謝您的編輯。 我發現錯誤:它是一個錯誤的變量名稱:$ imgw而不是$ width。我花了一整天的時間看着這段代碼,我覺得我在這一點上太過努力了。 – ucsendre