За последние 24 часа нас посетили 18444 программиста и 1707 роботов. Сейчас ищут 857 программистов ...

Отличия заргрузки файла на локальный комп и на сервер.

Тема в разделе "PHP для новичков", создана пользователем SAS_dnn, 5 июл 2008.

  1. SAS_dnn

    SAS_dnn Активный пользователь

    С нами с:
    5 июл 2008
    Сообщения:
    5
    Симпатии:
    0
    здравствуйте, подскажите пожалуйста:

    Есть форма:

    PHP:
    1. <form method="POST" action="upload.php">
    2. <label>Выберите картинку для загрузки:<br>
    3. <input type="file" name="myfile"><br><br>
    4. </label>
    5. <input type="submit" value="загрузить">
    6. </form>
    Обработчик файл upload.php:

    PHP:
    1. if(isset($_FILES["myfile"]))
    2.     {
    3.         $myfile = $_FILES["myfile"]["tmp_name"];
    4.         $myfile_name = $_FILES["myfile"]["name"];
    5.         $myfile_size = $_FILES["myfile"]["size"];
    6.         $myfile_type = $_FILES["myfile"]["type"];
    7.         $error_flag = $_FILES["myfile"]["error"];
    8.  
    9.         // Если ошибок не было
    10.         if($error_flag == 0)
    11.         {
    12.            
    13.            
    14.             $uploaddir = 'uploads/';
    15. $uploadfile = $uploaddir . basename($myfile_name);
    16. echo '<pre>';
    17. if (move_uploaded_file($myfile, $uploadfile)) {
    18.    echo "File is valid, and was successfully uploaded.\n";
    19. } else {
    20.    echo "Possible file upload attack!\n";
    21. }
    22. echo 'Here is some more debugging info:';
    23. print_r($_FILES);
    24. print "</pre>";

    На локальном компьютере работает все хорошо, файл загружается в нужную директорию. Т.е срабатывает функция move_uploaded_file и выдает сообщение "File is valid, and was successfully uploaded.".
    Но когда я загружаю данный скрипт на сервер, то функция не срабатывает и выдает "Possible file upload attack!"

    Подскажите пожалуйста в чём здесь проблема.
     
  2. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    SAS_dnn
    У каталога uploads есть права на запись в него файлов? Не забываем про систему прав *nix.
     
  3. SAS_dnn

    SAS_dnn Активный пользователь

    С нами с:
    5 июл 2008
    Сообщения:
    5
    Симпатии:
    0
    Dagdamor, подскажи пожалуйста как поставить права на запись.
     
  4. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    SAS_dnn
    Через FTP клиент, там - либо "атрибуты файлов" либо "права доступа"... ставишь везде галочки и ждешь атаки ;)
     
  5. SAS_dnn

    SAS_dnn Активный пользователь

    С нами с:
    5 июл 2008
    Сообщения:
    5
    Симпатии:
    0
    Dagdamor, а можно сделать через php?
     
  6. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    SAS_dnn
    файл сколько весит?
     
  7. SAS_dnn

    SAS_dnn Активный пользователь

    С нами с:
    5 июл 2008
    Сообщения:
    5
    Симпатии:
    0
    DarkElf, пробовал и маленькие файлы и большие. Тут дело походу в доступе к папке, но установить права не получается. И почему то папка вот таким способом на сервере тоже не создается, а на локалке создается:
    PHP:
    1. @mkdir("/uploads/", 0777);
     
  8. SAS_dnn

    SAS_dnn Активный пользователь

    С нами с:
    5 июл 2008
    Сообщения:
    5
    Симпатии:
    0
    Все заработало. Спасибо всем. Дело было действительно в доступе. Поставил права 777 и все ок.