Задать вопрос
@onahapa

Почему скрипт обрабатывает не все изображения?

Привет друзья. Есть скрипт, которые загружает изображения в папку на сервере и наносит "водяной знак".
Подскажите почему он обрабатывает не все изображения?
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$pre_extension = explode(".", $_FILES["file"]["name"]);
$extension = end($pre_extension);
if ((($_FILES["file"]["type"] == "image/gif")
	|| ($_FILES["file"]["type"] == "image/jpeg")
	|| ($_FILES["file"]["type"] == "image/png")
	|| ($_FILES["file"]["type"] == "image/pjpeg"))
	&& ($_FILES["file"]["size"] < 3000000)
	&& in_array($extension, $allowedExts)) {
	if ($_FILES["file"]["error"] > 0) {
		echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
	} else {
		$imageName = $_FILES["file"]["name"];
		$uploaddir = '/newUpload/';
		$uploadfile = getcwd().$uploaddir.basename($_FILES['file']['name']);

		if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
			list($width, $height) = getimagesize('newUpload/'.$imageName);
			if ($_FILES["file"]["type"] == "image/jpeg")
				$img = imageCreateFromJPEG('newUpload/'.$imageName);
			if ($_FILES["file"]["type"] == "image/png")
				$img = imageCreateFromPNG('newUpload/'.$imageName);
			if ($_FILES["file"]["type"] == "image/gif")
				$img = imageCreateFromGIF('newUpload/'.$imageName);

			$img_o = imageCreateTrueColor($width, $height);
			imageCopyResampled($img_o, $img, 0, 0, 0, 0, $width, $height, $width, $height);
			$myCount = $width/1000;

			//настройки для надписи
			$font      = "fonts/jhv68mh7.ttf";
			$imageText = "Текст";
			$angle     = rad2deg(atan2(imageSY($img_o), imageSX($img_o)));
			//Цвета
			$shadow    = imageColorAllocateAlpha($img_o, 0, 0, 0, 50);
			$color     = imageColorAllocateAlpha($img_o, 252, 223, 159, 100);
			imageTtfText($img_o, 100*$myCount, $angle, $width/2+3, $height/2+2, $shadow, $font, $imageText);
			imageTtfText($img_o, 100*$myCount, $angle, $width/2, $height/2, $color, $font, $imageText);

			if (file_exists("newUpload/" . $imageName)) {
				header("Content-type: image/jpeg");
				imageJPEG($img_o);
				imageJPEG($img_o, "newUpload/" . $imageName, 100);
			} else {
				move_uploaded_file($_FILES["file"]["tmp_name"],
				"newUpload/" . $_FILES["file"]["name"]);
				echo "Stored in: " . "newUpload/" . $_FILES["file"]["name"];
			}
		}
	}
} else {
	echo "Invalid file<br />";
	print_r($_FILES);
}
?>

И можно подсказать, о том как его оптимизировать и защитить :)
  • Вопрос задан
  • 2362 просмотра
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@allexp
web-developer
Ну, например, есть ограничение на размер файла до 3000000 байт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽