我有一个上传脚本,可以将.png文件重命名并上传到我的网站目录。我希望脚本在上传过程中能够将图像缩小到256x256像素。
我在这里四处张望,无法弄清楚如何将其包含在已有的代码中。
29
到目前为止,它仅重命名文件而没有调整大小。
答案 0 :(得分: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 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 {
$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>";
}
?>