Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.07.2010, 02:43
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
Вопрос Загрузчик картинок (пост)

Решил написать загрузчик картинок для сайта hostingkartinok.com

Собственно код

Код:
var
  Form1: TForm1;
     bas:TStringList;

Код:
var
gt:string;
begin
bas:= TStringList.Create;
bas.Add('multipart/form-data');
bas.Add('name='+edit1.text);
bas.Add('type='+edit2.text);
bas.Add('value="Загрузить"');
gt:=form1.IdHTTP1.Post('http://hostingkartinok.com/',bas);


Надо чтоб после загрузки избражения появлялась его ссылка в едите(мемо ),
Но как это реализовать незнаю..
Подскажите как , если что подправьте где нитак

ЗЫ. с сетью начал работать недавно так что не пинайте
Ответить с цитированием
  #2  
Старый 29.07.2010, 03:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В ответ на твой запрос ты получишь страничку, где будет указан адрес загруженных картинок. Тебе надо будет ее распарсить (например, с помощью MSHTML) и получить из соотв. тега этот адрес.
Ответить с цитированием
  #3  
Старый 29.07.2010, 16:14
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
По умолчанию

Вроде так тег?
Код:
<a href='http://_____'><


Но я не пойму как выбрать тект между ними в едит(мемо)?

можете подсказать как выдрать?
Ответить с цитированием
  #4  
Старый 29.07.2010, 17:00
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

сперва две функции:
Код:
function GetBefore(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,1,pos(substr,str)-1)
else
  result:='';
end;

function GetAfter(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,pos(substr,str)+length(substr),length(str))
else
  result:='';
end;
А потом:

Код:
memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', ПЕРЕМЕННАЯ С ТЕКСТОМ СТРАНИЦЫ) 
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #5  
Старый 29.07.2010, 17:37
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
По умолчанию

Код:
procedure host1;
function GetBefore(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,1,pos(substr,str)-1)
else
  result:='';
end;

function GetAfter(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,pos(substr,str)+length(substr),length(str))
else
  result:='';
end;
begin
memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', ПЕРЕМЕННАЯ С ТЕКСТОМ СТРАНИЦЫ)  //это строка ошибка говорит

end;

procedure TForm1.Button1Click(Sender: TObject);
var
gt:string;
begin
bas:= TStringList.Create;
bas.Add('multipart/form-data');
bas.Add('name='+edit1.text);
bas.Add('type='+edit2.text);
bas.Add('value="Загрузить"');
gt:=form1.IdHTTP1.Post('http://hostingkartinok.com/',bas);
host1;

end;

end.


В чем я ошибся? и как решить?
Ответить с цитированием
  #6  
Старый 29.07.2010, 17:39
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

OMG WTF
Код:
function GetBefore(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,1,pos(substr,str)-1)
else
  result:='';
end;

function GetAfter(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,pos(substr,str)+length(substr),length(str))
else
  result:='';
end;


procedure TForm1.Button1Click(Sender: TObject);
var
gt:string;
begin
bas:= TStringList.Create;
bas.Add('multipart/form-data');
bas.Add('name='+edit1.text);
bas.Add('type='+edit2.text);
bas.Add('value="Загрузить"');
gt:=form1.IdHTTP1.Post('http://hostingkartinok.com/',bas);
begin
memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', gt); host1;

end;

end.
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #7  
Старый 29.07.2010, 20:04
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   bas:TStringList;

implementation

{$R *.dfm}





function GetBefore(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,1,pos(substr,str)-1)
else
  result:='';
end;

function GetAfter(substr, str:string):string;
begin
if pos(substr,str)>0 then
  result:=copy(str,pos(substr,str)+length(substr),length(str))
else
  result:='';
end;


procedure TForm1.Button1Click(Sender: TObject);
var
gt:string;
begin
bas:= TStringList.Create;
bas.Add('multipart/form-data');
bas.Add('name='+edit1.text);
bas.Add('type='+edit2.text);
bas.Add('value="Загрузить"');
gt:=form1.IdHTTP1.Post('http://hostingkartinok.com/',bas);
begin
memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', gt);

end;

end.


memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', gt); // ошибка в чем?
Ответить с цитированием
  #8  
Старый 30.07.2010, 09:14
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', gt);

А где еще одна закрывающая скобка?
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #9  
Старый 30.07.2010, 11:51
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

hugolom, а разве ваш код для загрузки картинки рабочий?
Ответить с цитированием
  #10  
Старый 30.07.2010, 14:17
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
По умолчанию

Вот смотрю что нет..

Может поможете сделать его рабочим?
Ответить с цитированием
  #11  
Старый 30.07.2010, 14:57
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

1. браузер + сниффер
2. идем на hostingkartinok.com и смотрим какие запросы идут
3. реализуем с помощью idhttp + TIdMultiPartFormDataStream
Ответить с цитированием
  #12  
Старый 30.07.2010, 15:37
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
По умолчанию

мне нужно без браузера
Ответить с цитированием
  #13  
Старый 30.07.2010, 15:45
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Платите и сделают вам без лишних для вас телодвижений...
Ответить с цитированием
  #14  
Старый 30.07.2010, 16:51
hugolom hugolom вне форума
Новичок
 
Регистрация: 25.04.2010
Сообщения: 99
Репутация: 9
По умолчанию

Если я бы хотел это, то давно вы создал тему в услугах платных.
но мне охото самому научиться, делать это гет\пост запросами!
я думал это будет просто...
Ответить с цитированием
  #15  
Старый 30.07.2010, 17:52
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

товаришь pesi хочет тебе сказать что браузер+снифер нужны для того что бы узнать что и как надо отправлять серверу, а не предлагает тебе поставить в прогу браузер
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025