Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2007, 15:20   #1
S(p)@wN
Новичок
Джуниор
 
Регистрация: 16.08.2007
Сообщений: 2
По умолчанию Как получить ссылку на файл с файлообенника?

Делаю программу для облегчения использования файлообменного сервера.. Структура файлообменика почти такая же как и у подобных сервисов.. Задача вот в чем: программа получает список ссылок, получает для каждой ссылку картинку с кодом, отправляет код картинки для каждой ссылки, получает ссылку на файл и передает ссылку на файл в какой либо менеждер закачки.

Использую компонент TSwinHTTP, (очень хороший и легкий "транспорт")
(http://www.delphilab.ru/ ).

Все работает, за исключением одного но: файл загружается, а необходимо избежать этого. У компонента есть события WorkBegin, Work и WorkEnd, ни в одном из этих событий немогу выхватить ссылку на файл. В Indy удалось получить ссылку на файл, но только после получения это файла, что тоже не есть хорошо. Да и подключать Indy к проекту не хочу, слишком тяжелая библиотека..

Если знаете какой нибудь хороший компонент, который бы подошел, пишите!

Код с библиотекой Indy 10:

procedure TfmMain.Button2Click(Sender: TObject);
var
Data: TIdMultiPartFormDataStream;
CaptchaImg: TMemoryStream;
S, CaptchaFile: string;
begin
CaptchaImg:= TMemoryStream.Create;
Data:= TIdMultiPartFormDataStream.Create;
S:= idHTTP.Get('http://dsv.data.cod.ru/816135236');
if ExtractLinkToCaptcha(S, CaptchaFile) then
begin
idHTTP.Get('http://dsv.data.cod.ru' + CaptchaFile, CaptchaImg);
CaptchaImg.SaveToFile('C:\cod.png') ;
CaptchaImg.Free;
imgCaptcha.Picture.LoadFromFile('C: \cod.png');
Data.AddFormField('submit', '1');
Data.AddFormField('code', InputBox('Введите код','',''));
Memo1:= idHTTP.Post('http://dsv.data.cod.ru/816135236', Data);
Data.Free;
end;
end;


Действия в программе:
1)Открываю страницу http://dsv.data.cod.ru/816135236
2)Выдергиваю ссылку на картинку из текста HTML
3)Отображаю картинку
3)Вводится и отправляется код картинки
4)Получаю файл

В браузере все происходит следующим образом: (по аналогии с моими шагами) (подсмотрено снифером)
1)Открываю страницу http://dsv.data.cod.ru/816135236
3)Отправляю код картинки
4)Браузер переходит на страницу с "Ошибкой 302: Файл находится по адресу: адрес_файла"
5)Переходит на "адрес_файла", и начинается закачка..

Буду рад любым советам и предложениям!
P.S. Если что то понятно пишите, отвечу!
S(p)@wN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как зупустить ссылку в IE? Черничный Общие вопросы Delphi 2 11.08.2008 20:01
Передача массива как ссылку в ф-цию IgorKr Общие вопросы C/C++ 1 30.03.2008 14:57
Киньте ссылку xPAL Свободное общение 1 31.01.2008 14:29
Преобразовать форму в ссылку Pekc HTML и CSS 1 06.12.2007 20:10