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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ICS. Загрузка файла, Загрузка файла через Post с параметрами 
:(
    Опции темы
M1ndAction
Дата 18.1.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 19.1.2008

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



Добрый день,
решил попробовать ICS, но пока не все получается. Изначально задача такова: нужно загружать на файлообменник некоторое количество файлов. Сейчас это происходит в отдельном потоке с помощью TidHttp, но работает не стабильно - на определенном этапе поток останавливается, потому решил попробовать другой инструмент - Internet Component Suite.
GET-запрос делаю без проблем, есть пример POST-запроса с параметрами, но файл загрузить пока не получается. Была похожая тема, но особо не помогло.
Сейчас логика такова: GET-ом загружается страница, в обработчике события OnDocEnd происходит обработка страницы (извлекаются ссылки), и после этого пытаюсь сделать POST:
Код

procedure TForm2.cliDocEnd(Sender: TObject);
var
  ff, data: String;
  fs: TFileStream;
begin
  ...
  fs := TFileStream.Create(dlgOpen.FileName, fmOpenRead);
  SetLength(ff, fs.Size);
  fs.Read(ff[1], fs.Size);
  data := 'uploadId='+uploadid+'&'+'Empty='+''+'file_0='+ff;//загрузка идет с параметрами uploadid и Empty (пустой)
  cliUpload.SendStream := TMemoryStream.Create;
  cliUpload.SendStream.Write(data[1], Length(data));
  cliUpload.SendStream.Seek(0,0);
  cliUpload.URL := actionstr;
  cliUpload.PostASync;
end;


В таком случае в параметрах получается сплошная мешанина (проверяю через Http Analyzer). Пробовал только файл в поток передавать:
Код

  fs := TFileStream.Create(dlgOpen.FileName, fmOpenRead);
  cliUpload.SendStream := TMemoryStream.Create;
  cliUpload.SendStream := fs;
  cliUpload.SendStream.Seek(0,0);
  cliUpload.URL := actionstr;
  cliUpload.PostASync;


Но также не работает - в логах вижу что запрос не формируется как положено, хотя ContentTypePost установлен в multipart/form-data.
В Indy для передачи файлов я использовал структуру TIdMultiPartFormDataStream и все прекрасно и удобно работало, здесь же пока не получается. Какие будут идеи? smile
PM MAIL   Вверх
SultanOFF
Дата 23.1.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 23.3.2008

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



да тоже интересует вопрос, как пост запросом отправить файл ибо в примерах это не показано
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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