0

我是 PHP 的初学者,这就是我正在尝试做的事情:

  1. 接收上传的图像并将其移动到 temp/ 文件夹
  2. 检查它并决定是否需要调整大小(如果不是 135px 宽,则需要)
  3. 如果需要调整大小,调整大小并保存为 results/{number}_cover.jpg
  4. 如果没有,请立即将上传的图片复制到同一位置,无需调整大小

这是我的代码:

            $target_path = "temp/";
            $target_path = $target_path . basename($_FILES["file" . $a]["name"]); 
            move_uploaded_file($_FILES["file" . $a]["tmp_name"], $target_path);

            list($current_width, $current_height, $type, $attr) = getimagesize($target_path);
            if($current_width != 135) {
                $filename = $a . "_cover.jpg";
                $result_image = "results/" . $filename;
                $writing = fopen($result_image, 'w');
                $scale = (135 / $current_width);
                $new_width = 135;
                $new_height = $current_height * $scale;
                $result_image = imagecreatetruecolor($new_width, $new_height);
                $current_image = imagecreatefromjpeg($target_path);
                imagecopyresampled($result_image, $current_image, 0, 0, 0, 0, $new_width, $new_height, $current_width, $current_height);
                imagejpeg($result_image, null, 100);
                fclose($writing);
            } else {
                $target_path = "results/";
                $target_path = $target_path . $a . "_cover.jpg"; 
                move_uploaded_file($_FILES["file" . $a]["tmp_name"], $target_path);
            }

但是,这就是这段代码为我所做的: 1. 如果图像需要调整大小,它只是将图像数据提供给浏览器,而不是将其保存到文件中 2. 如果不需要调整大小,则不会发生任何事情。

我究竟做错了什么?

在此先感谢您的帮助!

4

0 回答 0