your_uncle
@your_uncle
старый я. учусь я

Как правильно обработать изображение php?

Всем привет! Есть проблема в загрузке и выводе изображений. Есть код:

$dir = $_SERVER["DOCUMENT_ROOT"] . "/pics1/";

if ($_FILES["screen1"]["type"] == "image/png"
    || $_FILES["screen1"]["type"] == "image/jpg"
    || $_FILES["screen1"]["type"] == "image/gif"
    || $_FILES["screen1"]["type"] == "image/jpeg"
    || $_FILES["screen1"]["type"] == "image/pjpeg") {
    // Новое имя изображения
    $filename1 = md5(date("YmdHis")) . ".jpg";
      $file = $dir . $filename1;
    // Копирование файла
    move_uploaded_file($_FILES["screen1"]["tmp_name"], $file);

    // Ответ сервера: путь до загруженного файла
    $array = array(
        "filelink" => "https://test.prdroid.com/stat/pics1/" . $filename1
    );

}

//////////////// загрузка второй картинки
$dir = $_SERVER["DOCUMENT_ROOT"] . "/pics2/";

if ($_FILES["screen2"]["type"] == "image/png"
    || $_FILES["screen2"]["type"] == "image/jpg"
    || $_FILES["screen2"]["type"] == "image/gif"
    || $_FILES["screen2"]["type"] == "image/jpeg"
    || $_FILES["screen2"]["type"] == "image/pjpeg") {
    // Новое имя изображения
    $filename2 = md5(date("YmdHis")) . ".jpg";
    echo $filename2 .'<br>';
    $file = $dir . $filename2;
    echo $file .'<br>';

    // Копирование файла
    move_uploaded_file($_FILES["screen2"]["tmp_name"], $file);

    // Ответ сервера: путь до загруженного файла
    $array = array(
        "filelink" => "https://test.prdroid.com/stat/pics2/" . $filename2
    );
}


этот код получает два файл, проверяет их на "изображение" и сохраняет их в папках. Код простой и рабочий, НО рабочий только на локалке. При переносе на удаленный сервер, картинки перестают загружаться в папки. Подскажите, пожалуйста, в чем может быть проблема.
Спасибо!
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Проблема может быть в правах доступа на папку для аккаунта, под которым работает процесс php.

Что касается проверки изображения «на изображение» – MIME-тип их определяется только по расширению файла, поэтому можно подсунуть хоть exe'шник, назвав его virus.exe.gif

Для настоящей проверки на то, что это именно изображение, надо использовать либо функцию в самом PHP либо внешнюю утилиту, которая работает именно со свойствами изображения: размером, цветовой глубиной – gd, ImageMagick, ffprobe от ffmpeg.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы