Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI




Приложение FILEUPL - часть 12


Далее в цикле уменьшается содержимое переменной nBytesToCopy, хранящей количество еще не прочитанных данных. После этого указатель текущей позиции nBufferPos в буфере lpTemp продвигается вперед на количество прочитанных байт cbReaded.

Условием завершения цикла является уменьшение значения nBytesToCopy до нуля. Это произойдет, когда все данные будут приняты.

Теперь о функции GetMIMEBoundary, которая определена в файле исходных текстов, но нигде не используется. Эта функция предназначена для получения строки разделителя блоков принятого файла.

Как мы уже говорили, принятый файл имеет формат MIME. Полное описание этого формата вы найдете в документах RFC2045, RFC2046, RFC2047, RFC2048 и RFC2049. Первый из этих документов называется “Multipurpose Internet Mail Extensions”. Однако для работы с принятым файлом вы можете обойтись без полной спецификации MIME.

Ниже мы привели в сокращенном виде содержимое файла e:\\InetPub\\scripts\\uploaded.dat после приема файла известного драйвера 800.com, предназначенного для работы с нестандартными форматами дискет. Помимо этого файла в принятых данных есть содержимое всех полей формы:

-----------------------------264872619131689

Content-Disposition: form-data; name="text1"

Sample of text1

-----------------------------264872619131689

Content-Disposition: form-data; name="pwd"

Sample of password

-----------------------------264872619131689

Content-Disposition: form-data; name="text2"

Sample of text

-----------------------------264872619131689

Content-Disposition: form-data; name="chk1"

on

-----------------------------264872619131689

Content-Disposition: form-data; name="chk3"

on

-----------------------------264872619131689

Content-Disposition: form-data; name="rad"

on1

-----------------------------264872619131689

Content-Disposition: form-data; name="fupload"; filename="C:\UT\800.com"




Содержание  Назад  Вперед