|
|
|
| Я тут на сайте нашел скрипт загрузки файлов на сервер:
<?php
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/temp/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($_FILES["filename"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
?>
|
он вот тут находится: http://www.softtime.ru/scripts/upload.php
Вначале я так понял, что если я выбираю файл на своем жестком диске через форму type="file", то upload.php перебрасывает файл на сервер, на котором сам и находится. Но видимо я еще зеленее в РНР, чем я думал, потому что как не пытаюсь разобраться, что именно этот скрипт делает, так и не получается. Пока, вроде как понял, что содержимое файла перебрасывается в tmp директорию сервера по умолчанию, присваивая файлу уникальное временное имя. Автор скрипта еще написал, что содержимое файла доступно через HTTP_POST_FILES.
А если мне эта папка temp не доступна (да и бывает ли она вообще доступна на хостинге??), то как мне загрузить файл на сервер фтп? подскажите, плиз. | |
|
|
|
|
|
|
|
для: dimon
(01.08.2007 в 11:16)
| | Папка temp, как правило, открыта для всех - иначе ничего работать не будет - слишком многим службам на хостинге необходимо создавать временные файлы. Если включён защищённый режим, то вместо функции copy() следует воспользоваться функцией move_uploaded_file().
PS Длинными массивами $HTTP_POST_FILES - лучше не пользоваться, они сейчас по умолчанию отключаются и всё идёт к тому, чтобы они были исключены из PHP. | |
|
|
|
|
|
|
|
для: cheops
(01.08.2007 в 12:49)
| | У меня просто уровень доверия за 4 месяца хорошей работы в компании еще не поднялся до нужного, поэтому сис.админ еще не очень горит желанием открыть мне доступ ко всему содержимому нашего сервера (даже папке tmp, где содержится статистика)
После выполнения пишется это:
Файл успешно загружен
Характеристики файла:
Имя файла: 12.txt
Размер файла: 12
Каталог для загрузки: /tmp/phplJIiXd
Тип файла: text/plain
|
я заменил copy на move_uploaded_file но показывается ошибка.
кстати, вот сообщение, выдаваемое при выполнении оригинального скрипта:
Warning: copy(c:/temp/12.txt): failed to open stream: No such file or directory in {...}File/scripts/upload.php on line 15
Ошибка загрузки файла
|
там правильные слэши? не надо заменять "/" на экранированные "\"? это же не http и не ftp? а верхнее сообщение о том, что все ок, это потому что я сразу заменил c:/temp/ на свой "Y:\Личные документы и каталоги\\" (сетевая папака), но там ничего нового не появляется... странно все как-то... | |
|
|
|
|
|
|
|
для: dimon
(01.08.2007 в 13:33)
| | Погодите - вы выполняете скрипт на сервере или локальной машине? Если на сервере, то вместо C:/temp подставляйте путь куда вы хотите в конечном итоге переместить файл (на сервере). | |
|
|
|
|
|
|
|
для: cheops
(01.08.2007 в 13:37)
| | согласен, тут накладочка вышла с C:/temp.. но я вроде пробовал и указывая путь на удаленном сервере, все равно не получалось...
Сам себе отвечаю: указал полный путь и все стало ОК. Спасибо, что направили на верный путь :) | |
|
|
|