0

我真的需要另一个大脑在这里。我有一个脚本可以制作三个不同版本的图像,并将它们保存在不同的文件夹(大、中、缩略图)中。它调整它们的大小并将它们放在它们的文件夹中,但大的不可读(其他两个是)。它与文件夹无关,所以我被卡住了......

这是我的(简化的)代码:

<?php

    $target_folder = "images/";
    $uploads_dir = $target_folder;

    $upload_image = $_FILES['Filedata']['tmp_name'];

    $id = $_POST['post_id'];
    $image_name = $id . "." . time();  //this just generates the image name

    $large_name = $target_folder . "large/" . $image_name . ".jpg";
    $medium_name = $target_folder . "medium/" . $image_name . ".jpg";
    $small_name = $target_folder . "small/" . $image_name . ".jpg";

    list($width, $height) = getimagesize($upload_image);  //width/height of original image

    $medium_newwidth = $width * 0.60;  //scales image down to 60%
    $medium_newheight = $height * 0.60;

    $small_newwidth = $width * 0.20;  //scales image down to 20%
    $small_newheight = $height * 0.20;

    $large = imagecreatefromjpeg($upload_image);  //here's where I think the problem might be
    $medium = imagecreatetruecolor($medium_newwidth, $medium_newheight);
    $small = imagecreatetruecolor($small_newwidth, $small_newheight);

    imagecopyresized($medium, $large, 0, 0, 0, 0, $medium_newwidth, $medium_newheight, $width, $height);
    imagecopyresized($small, $large, 0, 0, 0, 0, $small_newwidth, $small_newheight, $width, $height);

    imagejpeg($medium, $medium_name, 100);
    imagejpeg($small, $small_name, 100);

    rename($upload_image, $large_name);

?>

有任何想法吗?

谢谢!

4

1 回答 1

3

You should use move_uploaded_file instead of rename if you want to use the original upload. Alternatively you could save the large image like you are doing with the other ones:

imagejpeg($large, $large_name, 100);
于 2012-10-11T17:17:54.607 回答