За последние 24 часа нас посетили 19173 программиста и 1641 робот. Сейчас ищут 959 программистов ...

Форма загрузки файлов на сайт

Тема в разделе "Прочие вопросы по PHP", создана пользователем midisa, 23 сен 2011.

  1. midisa

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

    С нами с:
    12 авг 2011
    Сообщения:
    46
    Симпатии:
    0
    Добрый день уважаемые господа программисты.

    Пытаюсь писать на PHP ... одной рукой пишу, другой слезы вытираю ...
    Думаю, что если попадется мне разработчик php ... лучше ему не попадаться ...
    Нет НЕ ЕДИНОЙ функции, которая работала бы сразу ... все нужно как то вымудрить так, чтобы этому пхп понравилось..
    Но это лирика ... есть проблема в которой у меня не хватает знаний.

    Моя задача сделать форму, чтобы пользователь мог загружать файлы на сайт. В определенную папочку.

    Меня смущает этот текст, который везде используют:
    Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.

    Мои действия:
    Создал форму в пхп файле:

    HTML:
    1. <form name="upload_form" action="" accept-charset="utf-8" enctype="multipart/form-data" method="post">
    2.     <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    3.     <input type="hidden" name="upload_form" value="1">
    4.     I agree to the terms license agreement: <input type="checkbox" name="confirm_submit" value="1" /><br>
    5.     Send this file: <input name="userfile" type="file">
    6.     <input type="submit" value="Send File">
    7. </form>
    обрабатываю форму:

    PHP:
    1.     if(!empty($_POST['upload_form']) && isset($_POST['confirm_submit']))
    2.     {
    3.         $uploaddir = getcwd().'/download';
    4.         echo $uploaddir ."<br>";
    5.         echo $_FILES['userfile']['tmp_name']."<br>"; // Это вообще пустая переменная ...
    6.        
    7.         if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$_FILES['userfile']['name']))
    8.         {
    9.             print "File is valid, and was successfully uploaded.<br>";
    10.         } else
    11.         {
    12.             print "There some errors!<br>";
    13.         }      
    14.     }
    Файл не загружает на сервер.
    Другие сайты могут загружать файлы. Например wordpress. а у меня не получается.
    Стал смотреть как у них это сделано ... в общем запутался и решил спросить у вас.

    гугл все спирает на апаче 2, но при чем здесь апаче два если другие сайты загружают нормально, а у меня не получается.
    Видимо что то не правильно пишу.

    Буду признателен за вашу помощь.
     
  2. midisa

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

    С нами с:
    12 авг 2011
    Сообщения:
    46
    Симпатии:
    0
    вопрос решен тема закрыта.

    Мои проблемы были как обычно из за синтаксиса:

    1. Нужно указывать здесь: $_FILES['userfile']['tmp_name'] не одинарные кавычки, а двойные.
    После того как указал двойные кавычки сразу стали отображаться сообщения об ошибках, будто раньше они не могли отображаться ...
    2. Когда увидел сообщения об ошибке, посмотрел что означает 2. Оказалось максимальный размер меньше разрешенного. Добавил размер получил имя временного файла, который был получен.
    3. Установил права на директорию загрузки чтобы пхп мог писать в папку. Проглядел права.

    В общем работает хорошо. Но осадок остается не хороший от использования пхп. Не имея опыта (именно опыта, а не знаний), на пхп фиг что серьезное напишешь.

    Итог. Сделали пхп абы кабы. За результатом никто не следил. Результат работы не проверялся. Сделано все безконтрольно.
    Лично мое мнение такое. Я бы заставил их все ошибки поисправлять сначала, а потом только выпускать какие то очередные версии.
     
  3. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. $uploaddir = getcwd().'/download';
    Слеш на конце должен быть:
    Код (Text):
    1. $uploaddir = getcwd().'/download/';
    Потому что иначе $uploaddir.$_FILES['userfile']['name'] == чё-то/downloadИмяфайла.
     
  4. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    OMG.
     
  5. alexfer

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

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    пойду напьюсь. Как все печально.
     
  6. Feiron

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

    С нами с:
    12 авг 2009
    Сообщения:
    22
    Симпатии:
    0
    Автор жжёт - хочу ещё. Читал в слух пол отдела плакало и каталось по полу!
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Тож поржал :)
     
  8. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Пиши еще!!!