В моем php-коде я обрабатываю изображение, загруженное из другого источника: с рабочего стола, с мобильного и т. Д. Обычно изображения приходят в формате PNG или JPG, но я заметил, что снимки, сделанные с IOS / Iphone (возможно, и с Android), приходят безрасширение и как «изображение» только.Я попытался обработать картинку после загрузки на сервер (с помощью exif_imagetype и getExtension (), чтобы проверить, является ли файл изображением и является ли он расширением, чтобы иметь возможность добавить его в случае отсутствия в соответствии с его обнаруженным типом. Но яне удается сделать, так как мой сценарий принимает только PNG или JPG. Какой самый эффективный и простой способ решить эту проблему?
Вот мой код:
if(!empty($_FILES['file']['name'])){
$uploadedFile = '';
if(!empty($_FILES["file"]["type"]))
{
$valid_extensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") ||
($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions))
{
$filetype=$_FILES["file"]["type"];
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "upload/".$fileName;
$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = 'code' . '.' . end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newfilename);
}
}