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

Загрузка файла на сервер!

Тема в разделе "Прочие вопросы по PHP", создана пользователем immortal.1986, 24 сен 2014.

  1. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Добрый день помогите с загрузкой фалйа на сервак!
    1 вопрос! можно так!(что бы было в одной форме и текста и чекс боксы и сам файл)
    table align="center" id="regTable">
    <tr>
    <td>
    <h3> Регистрация пользователя </h3>
    <hr>
    <form enctype="multipart/form-data" action="reg.php" method="post">
    <input id="username" name="username" required="required" type="text" placeholder="Логин"/> <br>
    <input id="password" name="password" required="required" type="text" placeholder="Пароль"/> <br>
    <input id="email" name="email" required="required" type="text" placeholder="email"/> <br>
    <input type="hidden" name="MAX_FILE_SIZE" value="64000">
    <input class="fileUpload" name="userFile" type="file"><br>
    <input type="submit" value="Ок"/>
    </form>
    <hr>
    <a href="/index.php">Назад</a>
    </td>
    </tr>
    </table>
    2 вопрос!
    не загружается файл на сервак! вот код!
    Код (PHP):
    1. public function fileFilter($file){
    2.                 @mkdir("uploads", 0777);
    3.                 if($file["userFile"]["size"] > 1024*3*1024)
    4.                 {
    5.                         echo ("Размер файла превышает три мегабайта");
    6.                         exit;
    7.                 }
    8.                 // Проверяем загружен ли файл
    9.                 if(is_uploaded_file($file["userFile"]["tmp_name"]))
    10.                 {
    11.                         // Если файл загружен успешно, перемещаем его
    12.                         // из временной  в конечную
    13.                         move_uploaded_file($file["userFile"]["tmp_name"],"view/ru/uploads/".$file["userFile"]["name"]);
    14.                 } else {
    15.                         echo $file["userFile"]["tmp_name"], "/upload/".$file["userFile"]["name"];
    16.                         echo("Ошибка загрузки файла");
    17.                         print_r($file);
    18.                 }
    19.  
    20.  
    21.  
    22.         }
    23. $user->fileFilter($_FILES);
    24. echo ($_FILES['userFile']['error']);// 0 
    ошибки такие!
    arning: move_uploaded_file(view/ru/uploads/VisualElementsManifest.xml) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in C:\ws\OpenServer\domains\form\class\users.php on line 40
    Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\ws\OpenServer\userdata\temp\phpA1B1.tmp' to 'view/ru/uploads/VisualElementsManifest.xml' in C:\ws\OpenServer\domains\form\class\users.php on line 40
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    с чего ты взял, что он не загружается? var_dump($_FILES) покажи
     
  3. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Вы не умеете читать или пользоватья google-переводчиком?
     
  4. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    array (size=1)
    'userFile' =>
    array (size=5)
    'name' => string 'VisualElementsManifest.xml' (length=26)
    'type' => string 'text/xml' (length=8)
    'tmp_name' => string 'C:\ws\OpenServer\userdata\temp\php228D.tmp' (length=42)
    'error' => int 0
    'size' => int 399

    по C:\ws\OpenServer\userdata\temp\php228D.tmp эго нет!
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты как смотрел?
     
  6. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    через проводник )))))))
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    файл удаляется когда завершается работа скрипта. смотреть надо до того как он закончится. Файл загрузился, ошибок нет. Подумай, почему не получается его скопировать, и где нет прав.
     
  8. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    ну мб права! ну я проверил вроде все ок! + вот это же mkdir("uploads", 0777);
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а ты уверен, что она у тебя отработала без ошибок, если у тебя там блин собака стоит? Ты вообще начерта её поставил? Чтобы теперь за голову хвататься? И за каким чертом у тебя 777? =) Хочешь чтобы поломали тебя? =) Ну ты планируй чуток. Год тут уже программируешь.
     
  10. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Согласен! не учел что вы не телепаты! 8)
    @mkdir("uploads", 0777); - блин сабака стоит как следствие(потом сделается красиво,ибо нет смысла вываливать весь скипт,точно не работает в эот месте!поэтому малось упрощён,но суть вопроса остаётся)!!!!!! вообще да! создает папку(+пробовал создавать разные в разных,разными методами бубнами "Эфект" тот же)!
    Помогайте застрял в обычном вопросе! уже не пойму че по чём!

    Добавлено спустя 32 минуты 12 секунд:
    Спасайте уже и не знаю за что ухватится!
     
  11. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Никогда не пей эту гадость! Привыкнешь - и жизнь твоя не будет стоить ломаного цента! "Человек с бульвара Капуцинов".
    Случаи, когда нужно ставить собаку, можно пересчитать по пальцам одной руки, и это не один из них. Не уподобляйтесь начальнику, который запрещает говорить подчиненным о проблемах на работе, а потом удивляется, почему фирма так плохо работает. Разбирайтесь, почему у вас не отрабатывает mkdir. Может, создается, но не там, где вы ожидаете?
     
  12. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Сабака стоить просто для то го что бы не выкидывался ворнинг ТАМ ВООБЩЕ ЕЁ НЕ ДОЛЖНО БЫТЬ! я сам создаю папки , ну так как не получилось пробавал варианты, это просто последный создать через скрипт!
    куда копать?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Сам создал, а права дал?
     
  14. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    да создавал разными вариантами,и давал права и нет и такие и сякие!
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Собаку убери :) и смотри лог и ошибки. Пути проверь.
     
  16. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    убрал
    Warning: mkdir() [<a href='function.mkdir'>function.mkdir</a>]: File exists in C:\ws\OpenServer\domains\form\class\users.php on line 29

    Добавлено спустя 2 минуты 15 секунд:
    Warning: move_uploaded_file(/view/ru/uploads/debug.log) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory in C:\ws\OpenServer\domains\form\class\users.php on line 40

    Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\ws\OpenServer\userdata\temp\php32B6.tmp' to '/view/ru/uploads/debug.log' in C:\ws\OpenServer\domains\form\class\users.php on line 40
     
  17. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    И что? Перевести слабо с английского? 1 предупреждение - о том, что такая директория уже есть, поэтому mkdir не может создать её сново. Второе - что путь "view/ru/uploads" не найден. Поскольку нефиг относительный путь задавать - сделайте абсолютный (я его получаю через константу __DIR__ обычно). ТРетье - что не удалось переписать загруженный файл, поскольку путь, куда его надо переписать, не был найден. Интерпретатор вам всё подсказал...
     
  18. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Спасибо наталкнули на решение!
    ДИР помог правда не так как хотелось так как он вернул путь файла , а там инклюдники, и в этоге немного не то выдаеть ну то уже дело техники!
    Код (PHP):
    1.      //move_uploaded_file($file["userFile"]["tmp_name"], "C:/ws/OpenServer/domains/form/view/ru".
    2.       "/uploads/".$file["userFile"]["name"]);
    3.  
    4.          move_uploaded_file($file["userFile"]["tmp_name"], __DIR__."/uploads/".$file["userFile"]["name"]);
    5.  
    __DIR__ // C:/ws/OpenServer/domains/form/class
     
  19. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Если там инклюдики, можно определить константу на самом верхнем уровне. К пример, сделать какой-нибудь файл config.php в корне сайта, который включается везде и всюду, и там написать:

    Код (Text):
    1.  
    2. define("UPLOAD_DIR", __DIR__ . "/view/ru/uploads");