За последние 24 часа нас посетили 18882 программиста и 1730 роботов. Сейчас ищут 1294 программиста ...

Не работает move_uploaded_file()

Тема в разделе "PHP для новичков", создана пользователем Norair_986, 4 фев 2025.

  1. Norair_986

    Norair_986 Гость

    С нами с:
    3 фев 2025
    Сообщения:
    3
    Симпатии:
    0
    PHP:
    1. $tmp_name=$_FILES['picture']['tmp_name'];
    2.     $type=$_FILES['picture']['type'];
    3.     $file = 'path/to/image.jpg';
    4.     $image_mime = image_type_to_mime_type(exif_imagetype($tmp_name));
    5.     $array=['image/gif','image/jpeg','image/png','image/png'];
    6.     foreach($array as $arrays){
    7.         if($arrays==$image_mime){
    8.             $alpha[]=$arrays;
    9.         }
    10.     }
    11.     if (is_uploaded_file($_FILES['picture']['tmp_name'])) {
    12.         $name= md5(generateCode(10)) . $_FILES['picture']['name'];
    13.         $photo='files/pics/'.$name;
    14.  
    15.     }
    16. move_uploaded_file($tmp_name, "$photo");
    Не работает под как сделать код рабочим

    От модератора: код вставляй через кнопку </>
     
    #1 Norair_986, 4 фев 2025
    Последнее редактирование модератором: 5 фев 2025
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3. declare ( strict_types = 1 );
    4.  
    5. error_reporting ( E_ALL );
    6.  
    7. var_dump ( base64_decode ( "0J/Qu9Ce0YLQuCA1MDAg0YDRg9CxLiAwMCDQutC+0L8uIDop" ) );
    Наверху скрипта забыл добавить... Поэтому не работает.
     
  3. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    457
    Симпатии:
    92
    Адрес:
    Бавария, Германия
    Добрый день!
    вот это выглядит странно:
    PHP:
    1. $image_mime = image_type_to_mime_type(exif_imagetype($tmp_name));
    2. $array=['image/gif','image/jpeg','image/png','image/png'];
    3. foreach($array as $arrays){
    4.     if($arrays==$image_mime){
    5.         $alpha[]=$arrays;
    6.     }
    7. }
    Вы загружаете один файл и у него может быть только один mime-тип.
    Цикл здесь не нужен.
    Вам нужно сравнивать тип загружаемого файла со значениями из массива.
    Например, так:

    PHP:
    1. if (is_uploaded_file($_FILES['picture']['tmp_name'])) {
    2. ...
    3. ...
    4.     if(in_array($image_mime, $array)){
    5.         ...
    6.         move_uploaded_file($tmp_name, $photo);
    7.     }
    8.     else
    9.     {
    10.         echo "Error: File type incorrect!"
    11.     }
    12. }
    13. else
    14. {
    15.     echo "Error: ...";
    16. }
    Удачи!
     
    #3 Vladimir Kheifets, 5 фев 2025
    Последнее редактирование: 5 фев 2025