Отправка файла
Поле для отправки файла создает элемент формы в виде текстового поля для ввода имени файла, который пересылается на сервер. Поле создается следующим образом.
<input type="file" параметры>
</form>
Параметры формы enctype="multipart/form-data" нужен для корректной передачи файла. Если его не указать, будет передан лишь путь к файлу. Дополнительные параметры те же, что и для текстового поля и показаны в табл. 1.
| Параметр | Описание |
|---|---|
| name | Имя поля. Предназначено для того, чтобы обработчик формы мог идентифицировать это поле. |
| maxlength | Максимальное количество символов разрешенных в тексте. |
| size | Ширина поля. |
Поскольку объем файлов обычно достаточно большой, то для их отправки на сервер необходимо использовать метод POST, как показано в примере 1.
Пример 1. Создание поля для отправки файла
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Отправка файла</title>
</head>
<body>
<form action="/cgi-bin/handler.cgi" enctype="multipart/form-data"
method="post">
<p><b>Пожалуйста, укажите рисунок, который следует добавить:</b></p>
<p><input type="file" size="30"></p>
<p><input type="submit" value="Отправить"></p>
</form>
</html>
В результате получим следующее (рис. 1).

Рис. 1. Вид поля для отправки файла
| Статья опубликована: 12.09.2005 | Последнее обновление: 30.03.2008 |
Прежде, чем писать комментарий к статье, примите во внимание следующие моменты.
- Не задавайте вопросы в комментариях, для этой цели предназначен форум, где вы получите нужную помощь.
- Удаляются любые комментарии, которые:
- включают множество ошибок;
- написаны безграмотно;
- не имеют отношения к данной статье;
- не содержат никакой полезной информации для посетителей.
- Для выделения отдельных слов используйте следующие команды: [b]жирный[/b], [i]курсив[/i], [color=цвет]цветной текст[/color], [tag]тег[/tag], [var]параметр[/var], [code]пример[/code].
- Потренироваться в написании комментариев вы можете в песочнице.
Комментарии к статье
Антон
20.10.2006
Антон
20.10.2006
Влад Мержевич
23.10.2006
eagleow
09.01.2007
eagleow
09.01.2007
Антоша
09.01.2007
Конечно в случае с nm.ru и прочими narod.ru вам многое из возможного не удастся.
Сергей
09.01.2007
чего-то мне на майл не приходят результаты заполнения анкет
Что вы знаете по этому поводу?
Читател (Мас)
10.04.2007
Сайт www.php.net, кпримеру... Автор не ставил цели описывать серверные языки или языки WEB-програмирования. HTML - это не язык програмирования, это язык разметки страницы. Т.е. внимательнее читайте статьи и начинайте с азов. Средствами HTML невозможно обрабатывать формы на сервере, следовательно нельзя загружать информацию(или файлы).
HTMLCODER.exe
08.06.2007
А как и куда файл попадет это уже дело скрипта.
(Файл ловится из $_FILE['имя файлового <INPUT'>а'] на PHP , если комуто это чтото говорит)
Owl
02.07.2007
Условие:
Отправили файл на скрипт ->
-> этот скрипт его обработал и отослал назад на страничку ->
-> файл должен отобразиться на другой странице или на текущей.
Вопрос:
Как скрипт и ХТМЛ поймут друг друга на какой страничке и что именно в этом месте на странице надо отобразить файл?этому месту нужен какой-то тэг для того чтобы принимаемый со скрипта файл видел куда ему идти?
wd
03.07.2007
Iobar
03.07.2007
HTMLCODER,exe
07.07.2007
хтмл этого не может.
Можно выйти из положения великим и могучим Жабоскриптом
а проще просто сделать все на скрипте
имя файла вот $_FILE['input']['basename']
а так можно записать расширения [jpg|gif|bmp|png]
(регекспом)
отвечаю Owl, 02.07.2007:
опять таки скрипт сделает все сам, если его написать
Хтмл всеголиш продукт работы скрипта
в случае с примером выше на РНР вот как будет:
echo("<img src=\"uploads/".$_FILE['input']['basename']."\" />";
Если мы загружали файл с именем vasya.gif, получим
<img src="uploads/vasya.gif" />
(ну аттрибуты я приводить не стал, но если мы хотим изображения на странице "файл загружен", можно указать размеры, ну или считать их из фйала через GD а из bmp с размерами до 255 я и так считать могу 19й байт - ширина и 23й байт - высота
впрочем после думаю что после 255 тоже можно вручную можна было
просто байты назад идут:
19-26 байты при ш. 14 в.98
0e 00 00 00 62 00 00 00
19-26 байты при ш. 164 в.958
a4 00 00 00 be 03 00 00
поясняю последний пример:
габариты имеют макс. 4 байта (32 бита) и записаны в них "справа налево"
и т. о.
be 03 00 00 = 00 00 03 be = 3be,
a4 00 00 00 = 00 00 00 a4 = a4.
29й байт это количество битов для одного пикселя.
например в 24х битном bmp там стоит "18" (24 в 16-ричной нотации)
если речь идет о trueColor bmp (24 bit)
то собственно данные начинаются с 55ого байта
причем на пиксель идет 3 байта в формате BGR
(RGB наоборот, а так обычные хтмл цвета
красный например 00 00 ff будет
)
причем первый триплет, к примеру , это левый нижний пиксель.
тоест, упрощенно:
линия из байтов
1010010101000101011010011
станет
10011
10110
00010
10101
10100
если 5 было задано как высота и ширина.
1 значит ff ff ff
0 значит 00 00 00
байты на РНР пишутся так:
\xnn
где nn это сам байт
а х так и пишется
как заменять это уж сами думайте
HTMLCODER.exe
07.07.2007
если кто хочкт поэкспериментировать,
нужен Hex Editor
HTMLCODER.exe
07.07.2007
HTMLCODER.exe
07.07.2007
>Бесплатный хостинг -- это несерь?зно.
>Конечно в случае с nm.ru и прочими narod.ru вам многое из возможного не удастся.
вот тут бесплатно
http://hut.ru/
c PHP и прочими прибамбасами, в т. ч. и загрузка файлов
Dagger
23.06.2008
Z-MODe
24.06.2008
