Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinInet. Отправить файл и его имя 
:(
    Опции темы
_hunter
  Дата 24.5.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



Добрый день.

Подскажите пожалуйста как на WinInet организовать отправку такой:
Код

<FORM ACTION="form.asp" ENCTYPE="multipart/form-data" METHOD="post">
  <INPUT TYPE="file" NAME="myFile">
  <INPUT TYPE="text" NAME="fileName">
  <INPUT TYPE="submit" NAME="SUB1" VALUE="Upload File"></TD>
</FORM>

формы

пример, что я нашел:
Код

HINTERNET session = InternetOpen("file-uploader 0.1", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (session)
{
    HINTERNET connection = InternetConnect(session, _serverName, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL);
    if (connection)
    {
        HINTERNET request = HttpOpenRequest(connection, "POST", _serverPath, NULL, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE, NULL);
            if (request)
            {
                INTERNET_BUFFERSA bufferIn; ZeroMemory(&bufferIn, sizeof(INTERNET_BUFFERS));
                bufferIn.dwStructSize = sizeof( INTERNET_BUFFERSA );
                bufferIn.dwBufferTotal = fileSize;

                if (HttpSendRequestEx(request, &bufferIn, NULL, HSR_INITIATE, 0))
                {
                    //и тут в цикле идет InternetWriteFile(request, buffer, read, &written);


отправляет только файл

как сюда прикрутить отправку еще нескольких параметров?

можно ли за одну сесию отправить данные HttpOpenRequest' ом а потом как-то дописать эти данные?

С уважением... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 24.5.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Этот запрос должен отправляться мультипартом.
Я через WinInet таким никогда не занимался, но, думается, что копать нужно в эту сторону:
У INTERNET_BUFFERSA есть указатель на следующий INTERNET_BUFFERSA. (Next)
Если нужно передать только файл, то он указывает на NULL.
А, если хочешь передать что-то еще, то создай еще один INTERNET_BUFFERSA и в первый пропиши указатель на него.
По идее таким образом и должен создаваться полноценный Multipart POST.  
PM MAIL   Вверх
RA
Дата 24.5.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Библиотека работы с WinInet и заодно с winhttp + Пример использования
http://torry.net/vcl/internet/http/Alcinoe31011.zip

Советую посмотреть всё придельно просто. 
PM   Вверх
_hunter
Дата 24.5.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



Snowy, при таком подходе в памяти придется весь файл держать (а это и несколько гигов может быть)

RAdmin, почитаю... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.