![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Решил написать загрузчик картинок для сайта 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
|
|||
|
|||
|
В ответ на твой запрос ты получишь страничку, где будет указан адрес загруженных картинок. Тебе надо будет ее распарсить (например, с помощью MSHTML) и получить из соотв. тега этот адрес.
|
|
#3
|
|||
|
|||
|
Вроде так тег?
Код:
<a href='http://_____'>< Но я не пойму как выбрать тект между ними в едит(мемо)? можете подсказать как выдрать? |
|
#4
|
||||
|
||||
|
сперва две функции:
Код:
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="', ПЕРЕМЕННАЯ С ТЕКСТОМ СТРАНИЦЫ) |
|
#5
|
|||
|
|||
|
Код:
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
|
||||
|
||||
|
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. |
|
#7
|
|||
|
|||
|
Код:
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
|
|||
|
|||
|
memo1.lines.text:=GetBefore('"></LABEL></DIV></DIV>',GetAfter('URL</SPAN><INPUT type="text" size="92" onclick="this.select();" value="', gt);
А где еще одна закрывающая скобка? |
|
#9
|
||||
|
||||
|
hugolom, а разве ваш код для загрузки картинки рабочий?
|
|
#10
|
|||
|
|||
|
Вот смотрю что нет..
Может поможете сделать его рабочим? |
|
#11
|
||||
|
||||
|
1. браузер + сниффер
2. идем на hostingkartinok.com и смотрим какие запросы идут 3. реализуем с помощью idhttp + TIdMultiPartFormDataStream |
|
#12
|
|||
|
|||
|
мне нужно без браузера
|
|
#13
|
||||
|
||||
|
Платите и сделают вам без лишних для вас телодвижений...
|
|
#14
|
|||
|
|||
|
Если я бы хотел это, то давно вы создал тему в услугах платных.
но мне охото самому научиться, делать это гет\пост запросами! я думал это будет просто... |
|
#15
|
||||
|
||||
|
товаришь pesi хочет тебе сказать что браузер+снифер нужны для того что бы узнать что и как надо отправлять серверу, а не предлагает тебе поставить в прогу браузер
![]() |