powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
11 сообщений из 11, страница 1 из 1
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32241956
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж, господа!

Примеры взяты с http://phpclub.net

Пример 19-1. Форма для загрузки файлов
Код: plaintext
1.
2.
3.
4.
5.
<form enctype= "multipart/form-data"  action= "ИСПОЛНЯЕМЫЙ ПХП-СКРИПТ"  method= "post" >
<input type= "hidden"  name= "MAX_FILE_SIZE"  value= "1000 ">
Send this file: <input name= "userfile"  type= "file" >
<input type= "submit"  value= "Send File" >
</form>
 


Пример 19-2. Проверка загрузки файлов
Следующие пример предназначены для версий PHP 4 больше 4.0.2. См. о функциях is_uploaded_file() и move_uploaded_file().
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php 
// В PHP ранее  4 . 1 . 0 , должна использоваться $HTTP_POST_FILES  вместо $_FILES.
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    copy($_FILES['userfile']['tmp_name'],  "/place/to/put/uploaded/file" );
} else {
    echo  "Possible file upload attack. Filename: "  . $_FILES['userfile']['name'];
}
 /* ...или... */ 
move_uploaded_file($_FILES['userfile']['tmp_name'],  "/place/to/put/uploaded/file" );
?>


И рассмотрим эти действия в конкретном случае:

необходимо загрузить файл в директорию image, которая находится в той же директории, что и исполняемый скрипт, и плюс переименовать файл в img1234.jpeg, например.

Так вот дома у меня этот примео не прокатил, выдал "Possible file upload attack". Загрузка неудачной была. В чем может быть дело?

php4
apache



И вообще смысл загрузки файлов на сервер как я понял такой:

Есть временная директория на веб-сервере, в которую аплоадятся файлы.
Все без исключения. Затем его надо либо переместить, либо скопировать.
Иначе, хотя это произойдет в любом случае, файл через некоторое время будет удален (временный).

Я прав?

Ну тогда в чем проблема?
Почему файло не зааплодилось???



ВСЕМ ЗНАТОКАМ ПХП ПРОСЬБА ОТВЕТИТЬ, ПОТОМУ, ЧТО ЭТО БУДЕТ ИНТЕРЕСНО БОЛЬШИНСТВУ НОВИЧКОВ!
НЕСМОТРЯ НА ТО, ЧТО ВО ВСЕХ ФАКАХ ПОДНЯТ ЭТОТ ВОПРОС,
НО ДО КОНЦА НЕ РАСПИСАН...


Как всегда,
заранее вам благодарен! (c)Groove :-))
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32242068
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на пхпклубе спросить боишься ? :)
скорее всего проблема в
Код:
1.
<input type="hidden" name="MAX_FILE_SIZE" value="1000">

Эта строка означает что файл не может превышать 1000 байт.

А вообще в php есть 2 замечательные функции:
echo и print_r.

Выводишь print_r($_FILES) и смотришь что там написано.
Если в броузере работаешь то удобнее
echo "<pre>";
print_r($_FILES);
echo "</pre>";
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32242612
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Макс М.!
Спросить никогда не боялся и не стеснялся. Гораздо стыднее не знать и молчать!

Просто пхпклуб для меня проблематичен
если этот форум грузится за полсекунды, то там каждая страничку по 5-7 минут.

А за ответ спасибо!
Буду экспериментировать
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32243295
AKoval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Groove

У меня пример с phpclub работает один в один (apache1.3.27+php4.2.1 под Linux RedHat7 и под Win98).
Проблема возможно в php.ini в секции File Uploads (file_uploads=Off а нужно явно file_uploads=On). По крайней мере, когда я у себя на Win98 сделал off, тоже стал получать сообщение Possible file upload attack.
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32244012
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, уважаемый Maкс и AKoval!!!
Дело было действительно в этих двух вещах
file_uploads=Off
и
<input type="hidden" name="MAX_FILE_SIZE" value="1000">


исправил все заработало!!!

Вот только еще вопрос

как ПРАВИЛЬНО проверять был ли подан файл на загрузку?

Код: plaintext
1.
2.
3.
4.
//можно тремя способами, навскидку

 1 . if(!$userfile)
 2 . if(!$_POST[ "userfile" ])
 3 . if(!$_FILES['userfile']['name'])


какой правильный?
или может быть четвертый метод правильнее? ну тот который Ваш?
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32244663
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
... // файл біл закачан
} else {
// файл не был закачан
// читае $_FILES['userfile']['error'] чтобы узнать причину
...

}
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32244746
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно вопрос то был немного в другом:

не определить ПОЧЕМУ НЕ ЗАГРУЗИЛСЯ файл,
а БЫЛ ЛИ собственно файл для загрузки

Но все равно, большое спасибо!
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32244923
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первая строка моего кода как раз и определяет, был ли закачан файл
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32253613
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще в догонку, (PHP+IIS) вот такое извращение использую, но тем не менее:
файлы загруженные на сервер куда ложатся? временно...
а то что то выдает типа я ничего и не пытался грузить...
Код: plaintext
1.
2.
3.
4.
5.
6.
    
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    copy($_FILES['userfile']['tmp_name'],  "/place/to/put/uploaded/file" );
} else {
    echo  "Possible file upload attack. Filename: "  . $_FILES['userfile']['name'];
}

выдает:
Код: plaintext
Possible file upload attack. Filename: 
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32253718
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что выдает print_r($_FILES); ?
...
Рейтинг: 0 / 0
Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
    #32254196
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отбой!!!
в form кто то стер
Код: plaintext
enctype= "multipart/form-data" 

все запрыгало...


Просто очень не удобно дома отлаживать на апаче, а на работе на IIS

вот и мечешся меж двух огней.

Хотя в итоге все рано получается еще одна работа
дома (апач+виндаХР)
на работе (IIS+виндаХР)
хостинг (апач+юникс)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Давайте еще раз для новичков рассмотрим ЗАГРУЗКУ ФАЙЛОВ НА СЕРВЕР
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]