| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Загрузка файлов на сервер |
| Автор: NosfBlazE 2.10.2010, 18:49 | ||||
| Здравствуйте. Просмотрел на форуме все подобные темы, но так и не нашел решения. Объясню свою проблему на элементарном примере. Используется denwer. Есть 2 файла, лежащие в 1 каталоге file (т.е. запуск в браузере имеет вид http://localhost/file/index.php): index.php
script.php
Далее выбираем какой-нибудь файл с Рабочего стола и ... при работе возникает ошибка, что файл не найден, т.е. фактически не был загружен на сервер. Если же положить этот файл в каталог file рядом с .php файлами и затем уже указать в форме этот путь, то все работает отлично. Вот и возникает вопрос: почему так происходит? о_О Ведь должна была произойти загрузка в какой-то временный каталог, после нажатия на кнопку "Выполнить". Разве нет? P.S. Проблема возникла, когда заметил, что mysql бд не заполняется. Фактически мне надо, чтобы пользователь на клиентской части указал в соответствующей форме путь к файлу, который лежит где-то там в его какой-то локальной директории, затем у меня на сервере скрипт кидает уже файл в БД. А так получается, что пользователю надо было бы кинуть файл на сервер, затем указать путь к файлу на сервере... Что в действительности не так, а, значит, я где-то ну очень сильно туплю. |
| Автор: ayax2005 2.10.2010, 21:09 |
| Простите за возможно тупой вопрос - но что вы делаете в этой строчке? $fname = $_FILES['fileToUpload']['tmp_name']; Сохраняете имя временного файла? Я конечно не претендую на оригинальность, но где команда copy, которая скопирует временный файл из директории tmp в хранилище? |
| Автор: NosfBlazE 2.10.2010, 21:26 | ||
| Вопрос не тупой. Вы имеете в виду:
Но мне не понятен смысл этой функции, которая все равно выдает ту же ошибку, что временного файла то и нет и он никуда загружен не был. =/ Поясните тогда, пожалуйста, принцип работы с ней. P.S. Нужно просто, чтобы файл с компа пользователя попал в mysql бд сервера. Проблема в отсутствии какого-нибудь временного файла в $_FILES. Просто, скорее всего, я не в ладах с основными принципами передачи файла на сервер, поэтому и привел простенький пример, чтобы понять хотябы это. |
| Автор: ayax2005 2.10.2010, 21:35 |
| Проверку лучше выполнять не так. Обычно время хранения временного файла жёстко ограничено, поэтому я проверяю выполнение самой операции copy. Но это лирика. У вас denwer, насколько я понял, и это сильно смущает. Обычно в папке htdocs/ или на её уровне находится папка tmp или temp - она используется как раз для хранения временных файлов из аплоада. Во первых ,проверьте что она есть. Во-вторых, запустите phpinfo() и проверьте, что написано в строке upload_tmp_dir. И, наконец, проверьте права для этой папки. |
| Автор: NosfBlazE 2.10.2010, 23:08 |
| Пасиба за помощь. |
| Автор: Muerto 3.10.2010, 00:35 |
| не актуально... |