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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 20:39   #1
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
Вопрос Загрузка картинок на radikal.ru

Как программно загрузить картинку на radikal.ru ?
Возможно уже есть готовые исходники?...)
Заранее спасибо...
Joe_Tribbiani вне форума Ответить с цитированием
Старый 22.03.2009, 21:20   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Исходников не видел. Там все по накатаной, просто порядочно писанины.
А так, стандартная форма,которую надо заполнить и отправить POST.
Общие принципы описывал здесь
Единственное что здесь надо отметить, что для выполнения вашей задачи надо составить multipart data
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось Квэнди; 22.03.2009 в 21:26.
Квэнди вне форума Ответить с цитированием
Старый 22.03.2009, 22:30   #3
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

простой Post запрос не проходит так как саму картинку надо загрузить на сервер, в ответе получаю : "Неверный идентификатор картинки"
,тоесть я отправляю нужные параметы, но сама куартинка не залилась на сервер...
Цитата:
надо составить multipart data
что это?
а...

Код:
...
var
PostData: TIdMultiPartFormDataStream;
begin
...
PostData.AddFile(...);
Тоесть нужно отправить такой же пост запрос, только использовать TIdMultiPartFormDataStream ?
Я правильно понял?
тоесть нужно писать чтото вроде этого: ?
Код:
#

procedure TfrmMain.btn4Click(Sender: TObject);  //послать multipart
var
  PostData: TIdMultiPartFormDataStream;
begin
  PostData := TIdMultiPartFormDataStream.Create;
  try
    HTTP1.Request.Referer := 'http://www.link.net/download';
    HTTP1.Request.ContentType := 'multipart/form-data';
    PostData.AddFormField('field1', 'msg1');
    PostData.AddFile('attach', 'file.rar', 'application/x-rar-compressed');
    PostData.AddFormField('field2', 'msg2');
    PostData.AddFormField('action', 'post');
    HTTP1.Post('http://' + Host + '/download', PostData);
    Application.ProcessMessages;
  finally
    if(Assigned(PostData)) then
      PostData.Free;
    ShowMessage('OK');
  end;
end;

Последний раз редактировалось Joe_Tribbiani; 22.03.2009 в 23:07.
Joe_Tribbiani вне форума Ответить с цитированием
Старый 22.03.2009, 23:16   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Да, именно так, ну и главное проверить что все поля формы будут учавстсовать в запросе.
Ну и для уверенности все- таки отснифить оригинальный Post и сверится
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 23.03.2009, 16:03   #5
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Работает! спс Квэнди !)
Joe_Tribbiani вне форума Ответить с цитированием
Старый 23.03.2009, 16:08   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Без проблем ) Если у вас будет желание, опубликуйте для общественности ваши изыскания ) лучше всего здесь
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 23.03.2009, 16:24   #7
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Кому интересно, вот код)
я не отправлял параметры для измнения изображения(качество, ...)
,но при желании их легко можно добавить
отправил только размер
Код:
 PostData.AddFormField('M', '500');
где 500 - размер до которого уменьшаеться изображение

в разделе uses нужно добавить IdMultipartFormData
на форме размещаем idhttp , openpicturedialog, webbrowser

В конце отправки в переменную link заноситься ссылка на картинку
которая открываеться в Webbrowser

Код:
procedure TForm1.sButton1Click(Sender: TObject);
var

  PostData: TIdMultiPartFormDataStream;
  filename,link:string;
   stream:tstringstream;
   k,i:integer;
begin
stream:=tstringstream.Create;
  PostData := TIdMultiPartFormDataStream.Create;
  if sopenpicturedialog1.Execute then begin
   filename:=sopenpicturedialog1.FileName;
   try
    idhttp1.Request.Referer:= 'http://www.radikal.ru/';
    idhttp1.Request.ContentType:= 'multipart/form-data';
    PostData.AddFormField('upload', 'yes');
    PostData.AddFormField('GEO_POINT_ID', '');
    PostData.AddFormField('O', 'yes');
    PostData.AddFormField('M', '500');
    PostData.AddFile('attach', filename, 'image');
    idHTTP1.Post('http://www.radikal.ru/action.aspx', PostData,stream);
   k:=pos('<input type="hidden" id="url4res" value="',stream.DataString);
   i:=k+length('<input type="hidden" id="url4res" value="');
   link:='';
   while stream.DataString[i]<>'"' do begin
   link:=link+stream.DataString[i];
   i:=i+1;
   end;
   webbrowser1.Navigate(link);
    Application.ProcessMessages;
  finally
    if(Assigned(PostData)) then
      PostData.Free;
  end;
end;
stream.Free;

end;

Последний раз редактировалось Joe_Tribbiani; 23.03.2009 в 18:51.
Joe_Tribbiani вне форума Ответить с цитированием
Старый 25.03.2009, 10:59   #8
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
Вопрос

Теперь у меня еще одна проблема...
imgfiles.ru
тут почемуто неполучаеться этим способом...
Вот мой код, если кто-то знает как, помогите плз...)

Код:
procedure TForm5.sButton2Click(Sender: TObject);
var
  PostData: TIdMultiPartFormDataStream;
   link:string;
   stream:tstringstream;
   k,i:integer;
begin
stream:=tstringstream.Create;
  PostData := TIdMultiPartFormDataStream.Create;
   try
    idhttp1.Request.Referer:= 'http://imgfiles.ru/';
    idhttp1.Request.ContentType:= 'multipart/form-data';
    IdHTTP1.HandleRedirects := True;
    PostData.AddFormField('imgCount', '0');
        PostData.AddFormField('uplFile0', filename);

        PostData.AddFormField('uplComment', '');

     if scheckbox1.Checked=true  then
     PostData.AddFormField('uplImgSize', sedit2.Text);

      PostData.AddFormField('uplPrevSize', sedit5.Text);
       PostData.AddFormField('uplWatermark', '0');
       PostData.AddFormField('uplAlbum', 'System_default');

       if scheckbox2.Checked=true  then
       PostData.AddFormField('putInfo', 'checked')
       else PostData.AddFormField('putInfo', '') ;

       if scheckbox3.Checked=true  then
       PostData.AddFormField('uplEro', '1');


    PostData.AddFile('attach', filename, 'image');
    postData.AddFormField('uplSub','Загрузить');

    idHTTP1.Post('http://imgfiles.ru/', PostData,stream);
      Application.ProcessMessages;
    stream.SaveToFile(extractfilepath(application.ExeName)+'imgfiles.html');
    webbrowser1.Navigate(extractfilepath(application.ExeName)+'imgfiles.html');
 
  finally
    if(Assigned(PostData)) then
      PostData.Free;
end;
stream.Free;
И в Вебброузере появляеться пустая страница... что делать?

Последний раз редактировалось Joe_Tribbiani; 25.03.2009 в 12:33.
Joe_Tribbiani вне форума Ответить с цитированием
Старый 25.03.2009, 11:39   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

То, что сразу бросилось в глаза:
не указано поле uplComment
некоторые поля заполняются условно, а лучше заполнть все обязательно хотя бы пустыми значениями
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось Квэнди; 25.03.2009 в 11:44.
Квэнди вне форума Ответить с цитированием
Старый 25.03.2009, 12:33   #10
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

Добавил поле, всёравно не отправляет...
Joe_Tribbiani вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повороты картинок yura-cat Помощь студентам 1 30.10.2008 14:28
Загрузка текста и картинок MAKEDON Помощь студентам 8 09.08.2008 10:36
Эффекты картинок Andrey1433 PHP 1 17.03.2008 02:07
Просмотр картинок Kocapb Общие вопросы C/C++ 1 25.11.2007 16:51
Загрузка jpg картинок А. Долматов Мультимедиа в Delphi 4 08.10.2007 17:11