【问题标题】:Resize Width and Height of an Image During Upload [duplicate]在上传期间调整图像的宽度和高度[重复]
【发布时间】:2020-01-01 02:52:22
【问题描述】:

我有一个上传脚本,可以重命名 .png 文件并将其上传到我的网站目录。我希望脚本能够在上传过程中将图像缩小到 256x256 像素。

我在这里环顾四周,不知道如何将它包含在我已有的代码中。

<?php
$z = $_POST['z'];
$x = $_POST['x'];
$y = $_POST['y'];
$target_dir = "/DIRECTORY/$z-$x-$y.png";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
 if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "png") {
    echo "Sorry, only PNG files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, rename then try to upload file
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], 
$target_dir)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " 
has been uploaded.";
        echo '<a href="mywebsite">To The Drawbox! 
   </a>';

    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

到目前为止,它只重命名文件但不调整大小。

【问题讨论】:

    标签: php


    【解决方案1】:

    我没有测试过这段代码,很可能它会工作!

    想法:

    $new_width = 256;
    $new_height = 256;
    
    $source = $_FILES['fileToUpload']['tmp_name'];
    $image = imagecreatefrompng($source);
    $layer = imagecreatetruecolor($new_width, $new_height);
    
    imagecopyresampled($layer, $image, 0, 0, 0 ,0, $new_width, $new_height, imagesx($image), imagesy($image));
    
    imagepng($image,'./images/file-name.png', 9); // Here specify the file name.
    imagedestroy($image);
    

    完整代码:

    <?php
        $z = $_POST['z'];
        $x = $_POST['x'];
        $y = $_POST['y'];
        $target_dir = "/DIRECTORY/$z-$x-$y.png";
        $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
        $uploadOk = 1;
        $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
        // Check if the image file is an actual image or fake
         if(isset($_POST["submit"])) {
            $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
            if ($check !== false) {
                echo "File is an image - " . $check["mime"] . ".";
                $uploadOk = 1;
            } else {
                echo "File is not an image.";
                $uploadOk = 0;
            }
        }
        // Check if file already exists
        if (file_exists($target_file)) {
            echo "Sorry, file already exists.";
            $uploadOk = 0;
        }
        // Check file size
        if ($_FILES["fileToUpload"]["size"] > 500000) {
            echo "Sorry, your file is too large.";
            $uploadOk = 0;
        }
        // Allow certain file formats
        if($imageFileType != "png") {
            echo "Sorry, only PNG files are allowed.";
            $uploadOk = 0;
        }
        // Check if $uploadOk is set to 0 by an error
        if ($uploadOk == 0) {
            echo "Sorry, your file was not uploaded.";
            // if everything is ok, rename it and try to upload the file
        } else { 
    
            $new_width = 256;
            $new_height = 256;
    
            $source = $_FILES['fileToUpload']['tmp_name'];
            $image = imagecreatefrompng($source);
            $layer = imagecreatetruecolor($new_width, $new_height);
    
            imagecopyresampled($layer, $image, 0, 0, 0 ,0, $new_width, $new_height, imagesx($image), imagesy($image));
    
            imagepng($image, $target_dir, 9); // Here specify the file name.
            imagedestroy($image);
            echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
            echo "<a href=\"mywebsite\">To The Drawbox!</a>";
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多