Здравствуйте Arkadi, Вы писали:
MFC в ISAPI — жуть-то какая.
A>Вобщем первая функция отрабатывает нормально:
A>void CMy555Extension::Default(CHttpServerContext* pCtxt)
A>{ ....
A> *pCtxt << _T("<FORM ENCTYPE=multipart/form-data name=form1 action=555.dll?Deistv method=post>");
A> *pCtxt << _T("<Отправить данный файл: <INPUT NAME=userfile TYPE=file>");
A> *pCtxt << _T("<INPUT name=knopka TYPE=submit VALUE=Отправить>");
A> ....}
A>А дальше сплошные вопросы...
A>Делаю карту:
A> ON_PARSE_COMMAND(Deistv, CMy555Extension,ITS_RAW)
A> ON_PARSE_COMMAND_PARAMS("userfile")
A>И саму функцию:
A>void CMy555Extension::Deistv(CHttpServerContext* pCtxt,LPVOID userfile)
A>{...
A>hFile = CreateFile(...
pCtxt->>GetServerVariable("CONTENT_LENGTH",(void*) size,(unsigned long *)4);
A>WriteFile(hFile,userfile,size, (unsigned long *)&s,NULL);
A>... }
A>Возвращает 400-ю ошибку. Плохой запрос...
И правильно делает. MFCшный класс умеет обрабатывать параметры запросов GET И POST с ОБЫЧНЫМ url-encoding'ом. А в multipart все совсем по другому. Поэтому не находит оно параметр userfile и запрос отвергает.
A>Подскажите пожалуйста, как правильно эту функцию оформить и какие еще параметры в нее передавать из Default(), чтобы получить имя файла , и правильный размер ?
MFC тут тебе ничем не поможет. И никаких готовых средств для ISAPI я не знаю. По поводу того, как устроен multipart, можешь почитать RFC 1867. При наличии желания и умения собственный декодер мультипарта пишется за 2-3 дня.
Спасибо за ответ... я 5-й курс заканчиваю, это фактически был последний экзамен. И на нем вот такое практическое задание... в VC6 за 1,5 часа сделать isapi dll, которая бы принимала от клиента файл и сохраняла на сервере

)
Спасибо за ответ... Все бы ничего, если бы это было не практическое задание на экзамене... за 1,5 часа нужно было сделать эту dll-ку на VC6...
Alexander N. Treyner
Здравствуйте Arkadi, Вы писали:
A>Спасибо за ответ... я 5-й курс заканчиваю, это фактически был последний экзамен. И на нем вот такое практическое задание... в VC6 за 1,5 часа сделать isapi dll, которая бы принимала от клиента файл и сохраняла на сервере
)

Составитетели экзамена офигели чтоли?