0

我正在尝试制作简单的代码来上传图像>调整大小>保存在目录中>并在调整大小后在浏览器中显示。问题是该文件正在保存,但我的回声不起作用,我得到灰色背景,其中包含图像包含错误且无法显示的信息。

当 imagejpeg 参数设置为 imagejpeg($imageP, null, 100) 时,图片显示在此灰色背景上,但页面的其余部分仍然丢失。

调整大小功能:

function resizeProportionallyByPx($width, $height, $image)
{
header('Content-Type: image/jpg');
list($widthOriginal, $heightOriginal) = getimagesize($image);
$ratioOriginal = $widthOriginal/$heightOriginal;

if($width/$height > $ratioOriginal){
    $width = $height * $ratioOriginal;
}else{
    $height = $width * $ratioOriginal;
}

$imageP = imagecreatetruecolor($width, $height);
$imageJ = imagecreatefromjpeg($image);

imagecopyresampled($imageP, $imageJ, 0, 0, 0, 0, $width, $height, $widthOriginal, $heightOriginal);
imagejpeg($imageP, '../imagesResized/demo.jpg', 100);
}

代码:

if (isset($_FILES['imageToUpload']) && isset($_POST['width']) && isset($_POST['height']) && is_numeric($_POST['width']) && is_numeric($_POST['height'])) {

    $uploadDir = "../images/";
    $uploadFile = $uploadDir . basename($_FILES['imageToUpload']['name']);
    $width = $_POST['width'];
    $height = $_POST['height'];

    if(move_uploaded_file($_FILES['imageToUpload']['tmp_name'], $uploadFile))
    {
        $size = formatSizeUnits($_FILES['imageToUpload']['size']);
        $image = $_FILES["imageToUpload"]["name"];
        $imageOriginalPath = "../images/" . $image;

        resizeProportionallyByPx($width, $height, $imageOriginalPath);
        $imageResizedPath = '../imagesResized/demo.jpg';

        echo "Uploaded file info:" . '<br />'
            . "File name: " . $_FILES['imageToUpload']['name'] . " is valid and was successfully uploaded.<br />"
            . " File type: " . $_FILES['imageToUpload']['type'] . '<br />'
            . " File size: " . $size . '<br />'
            . " Temp file: " . $_FILES["imageToUpload"]["tmp_name"] . '<br />'
            . "<img src=" . "$imageOriginalPath><br />"
            . "Image after resize: <br />"
            . "<img src=$imageResizedPath>" . "<br />";

    }
    else
    {
        echo "Possible file upload attack, upload has failed." . "Error: " . $_FILES['imageToUpload']['error'];
    }
}

chmod 和 chow 已配置。希望有人可以帮助我解决我的第一个问题,干杯。

4

0 回答 0