PHP. Обработчик загруженных файлов. Не работает ?
Primary tabs
А это index.php
<html> <head><title> WWWW </title></head> <body> <?php <FORM ENCTYPE ="multipart/form-data" ACTION = "phpfile.php" method="post" > Select the file to download : <INPUT NAME="userfile" TYPE="file" > <BR><BR> <INPUT TYPE ="submit" VALUE="Download!" > </FORM> ?> </body> </html>
Это phpfile.php , который обрабатывает загруженный файл :
<html> <head><title> FILE HANDLING </title></head> <body> <H1> The display of the uploaded file </H1> <?php $handle = fopen ( $_FILES ['userfiles'] ['tmp_name']); while ( !feof ($handle) ) { $text = fgets ($handle) ; echo $text , "<BR>" ; } fclose ( $handle) ; ?> </body> </html>
Появляется ошибка ( более того цикл while , бесконечно выполняет код , что вызывает зависание браузера и его поломку ) :
Notice: Undefined index: userfiles in C:\www\test\phpfile.php on line 9 Warning: fopen() expects at least 2 parameters, 1 given in C:\www\test\phpfile.php on line 9 Warning: feof() expects parameter 1 to be resource, boolean given in C:\www\test\phpfile.php on line 10 Warning: fgets() expects parameter 1 to be resource, boolean given in C:\www\test\phpfile.php on line 12
- Log in to post comments
- 8917 reads
DenDroiD
Mon, 08/03/2015 - 11:27
Permalink
Ваша главная ошибка в том,
Ваша главная ошибка в том, что имя поля для загрузки 'userfile', а обращение идет к 'userfiles'. Также в fopen надо передавать модификатор доступа: например 'r' для чтения. Вот смените эту строку
И все заработает.
P.S: на кнопке логичнее писать "upload", а не download.
fgh
Mon, 08/03/2015 - 11:36
Permalink
Спасибо ) получилось .
Спасибо ) получилось . Скажите пожалуйста , модификатор доступа 'r' это обязательно ? Или он нужен только для атрибута "только для чтения" , можно ли его чем то заменить или убрать ?
DenDroiD
Mon, 08/03/2015 - 11:39
Permalink
Модификатор доступа в fopen
Да, модификатор передавать обязательно. Есть и другие модификаторы доступа. Подробнее про функцию fopen и различные модификаторы доступа (чтение, запись, добавление и т.д) прочтите тут http://www.php.su/fopen
vedro-compota
Mon, 08/03/2015 - 11:41
Permalink
вопрос некорректен - учитесь
вопрос некорректен - учитесь использовать документацию -
идём сюда (php.net)
- используем форму search в правом верхнем углу и читаем
документацию по функции (язык можно переключить на русский).
Если в функции параметр необзятален то его записывают
в квадратных скобках - если же он не в квадратных - то обязателен, в вашем случае:
как видим - первые два параметра обязательны.
если будут вопросы по документации или по поиску в ней - спрашивайте.)
_____________
матфак вгу и остальная классика =)
fgh
Mon, 08/03/2015 - 11:45
Permalink
Понял. Спасибо.
Понял. Спасибо.
vedro-compota
Mon, 08/03/2015 - 20:08
Permalink
подсветка
Предупреждения и сообщения об ошибках тоже подсвечивайте как код (Warning) и удалите лишние строки. Записи должны выглядеть аккуратно)
_____________
матфак вгу и остальная классика =)