Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файлов на сервер, файл не найден 
V
    Опции темы
NosfBlazE
Дата 2.10.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Здравствуйте. Просмотрел на форуме все подобные темы, но так и не нашел решения. Объясню свою проблему на элементарном примере.

Используется denwer. Есть 2 файла, лежащие в 1 каталоге file (т.е. запуск в браузере имеет вид http://localhost/file/index.php):
index.php
Код

//...
<form action="script.php" method="post" name="switch_f" target="_parent" enctype="multipart/form-data">
    <p>Выберите текстовый файл:</p>
    <p><input type="file" name="fileToUpload" /></p>
    <p><input type="submit" name="submit" value="Выполнить" /></p>
</form>
//...



script.php
Код

//...
$fname = $_FILES['fileToUpload']['tmp_name'];
//...


Далее выбираем какой-нибудь файл с Рабочего стола и ... при работе возникает ошибка, что файл не найден, т.е. фактически не был загружен на сервер. Если же положить этот файл в каталог file рядом с .php файлами и затем уже указать в форме этот путь, то все работает отлично.
Вот и возникает вопрос: почему так происходит? о_О Ведь должна была произойти загрузка в какой-то временный каталог, после нажатия на кнопку "Выполнить". Разве нет?

P.S. Проблема возникла, когда заметил, что mysql бд не заполняется. Фактически мне надо, чтобы пользователь на клиентской части указал в соответствующей форме путь к файлу, который лежит где-то там в его какой-то локальной директории, затем у меня на сервере скрипт кидает уже файл в БД. А так получается, что пользователю надо было бы кинуть файл на сервер, затем указать путь к файлу на сервере... Что в действительности не так, а, значит, я где-то ну очень сильно туплю. smile Надеюсь на вашу помощь.
PM MAIL ICQ Skype Jabber   Вверх
ayax2005
Дата 2.10.2010, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Простите за возможно тупой вопрос - но что вы делаете в этой строчке? $fname = $_FILES['fileToUpload']['tmp_name'];
Сохраняете имя временного файла?
Я конечно не претендую на оригинальность, но где команда copy, которая скопирует временный файл из директории tmp в хранилище?

Это сообщение отредактировал(а) ayax2005 - 2.10.2010, 21:11


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
NosfBlazE
Дата 2.10.2010, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Вопрос не тупой. smile Это своего рода проверка: имею я доступ к файлу или нет, т.е. был ли он загружен. Согласен, красивее было бы поставить условие вроде if( !empty( $_FILES['fileToUpload']['tmp_name'] ) ) ... Но суть не меняется.
Вы имеете в виду:

Код

copy($_FILES["fileToUpload"]["tmp_name"], "z:/UploadedFiles/temp/".$_FILES["fileToUpload"]["name"]);

Но мне не понятен смысл этой функции, которая все равно выдает ту же ошибку, что временного файла то и нет и он никуда загружен не был. =/ Поясните тогда, пожалуйста, принцип работы с ней.

P.S. Нужно просто, чтобы файл с компа пользователя попал в mysql бд сервера. Проблема в отсутствии какого-нибудь временного файла в $_FILES. Просто, скорее всего, я не в ладах с основными принципами передачи файла на сервер, поэтому и привел простенький пример, чтобы понять хотябы это. smile С базой уж разберусь сам.))
PM MAIL ICQ Skype Jabber   Вверх
ayax2005
Дата 2.10.2010, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Проверку лучше выполнять не так. Обычно время хранения временного файла жёстко ограничено, поэтому я проверяю выполнение самой операции copy. Но это лирика.

У вас denwer, насколько я понял, и это сильно смущает. Обычно в папке htdocs/ или на её уровне находится папка tmp или temp - она используется как раз для хранения временных файлов из аплоада.
Во первых ,проверьте что она есть.
Во-вторых, запустите phpinfo() и проверьте, что написано в строке upload_tmp_dir.
И, наконец, проверьте права для этой папки.


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
NosfBlazE
Дата 2.10.2010, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


炎丸 =Ferro ignique!=
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.11.2008
Где: Russia

Репутация: нет
Всего: нет



Пасиба за помощь. smile Вручную переписал пути для временных файлов, и все заработало.
PM MAIL ICQ Skype Jabber   Вверх
Muerto
Дата 3.10.2010, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



не актуально...  smile 

Это сообщение отредактировал(а) Muerto - 3.10.2010, 00:39


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.