Загрузился файл с клиента. Теперь его нужно переделать в картинку формата PNG (не смотря PNG это уже или нет). Чтобы никто не смог дописать еще в PNG php код и потом баловаться. Переделываю так
imagepng(imagecreatefromstring(file_get_contents($_FILES["file"]["tmp_name"][0])), "upload/".$random_name, 9);
Все прекрасно, вот только прозрачность пропадает. Как это можно исправить?
Есть способ
$png = imagecreatefrompng(путь до PNG картинки);
imagealphablending($png, false);
imagesavealpha($png, true);
Но ведь мне могут заливать не только PNG картинки, и как проверит PNG ли картинка? $_FILES["file"]["type"]? Не пойдет. Подменить заголовок можно. Проверить в конце файла .png тоже не пойдет. Можно написать .php.png. Как быть?