2011-07-31 2 views
4

私はAPIキーを持っていて、自分のサイトでスパース文書を読んでいますが、それでも問題が起こっているので、誰かが共有できる例があればそれは素晴らしいでしょう。私はビデオや何か気になることは心配する必要はありません。返信情報を簡単にアップロードすれば、私のニーズに合ったものになります。画像をdelphiでimageshackにアップロード

uses IdHttp; 

function PostData:string; 
var 
    url: string; 
    text: string; 
    http: TIDHttp; 
    valid: boolean; 
    param: TStringList; 
begin 
    http := TIDHttp.Create(nil); 
    http.HandleRedirects := true; 
    http.ReadTimeout := 5000; 
    param := TStringList.create; 
    param.Clear; 
    param.Add('fileupload=c:\image.png'); 
    param.Add('key=MY_API_KEY'); 
    param.Add('tags=tag1,tag2'); 
    valid := true; 
    url := 'http://www.imageshack.us/upload_api.php'; 

    try 
     text := http.Post(url, param); 
    except 
     valid := false; 
    end; 

    if valid then 
     PostData := text 
    else 
     PostData := ''; 
end; 

thx。 ケビン

+1

誰かがあなたを助けるためにしようとする前に – ComputerSaysNo

+0

コード... >>> http://pastebin.com/sRFj3u7z <<< ...「動作していない」というコードを提供する必要があります。..コード –

+2

あなたのコードに「実際の」画像を送信していない場合は、http://forums2.atozed.com/viewtopic.php?f=7&t=14992 gambitのコメントを読んでください。問題がある場合は、コードを投稿して問題を指摘してください。また、デルファイのバージョン(つまり、2009年、2010年、XEなど)とインディがわれわれをもっと助けてくれるはずです。 – ComputerSaysNo

答えて

1

まったく同じ事を最後にしました。 Thx tho。

procedure TForm1.Button1Click(Sender: TObject); 
var 
    MPData: TIdMultiPartFormDataStream; 
    sResponse: string; 
begin 
    MPData := TIdMultiPartFormDataStream.Create; 
    MPData.AddFile('fileupload','c:\image.png','image/png'); 
    MPData.AddFormField('tags','testfile,flyasia'); 
    MPData.AddFormField('public','no'); 
    MPData.AddFormField('key','API_KEY_HERE'); 
    sResponse := IdHTTP1.Post('http://www.imageshack.us/upload_api.php', MPData); 
    MPData.Free; 

    Memo1.Text := sResponse; 
end; 
+0

注意、Indyはこの方法でサーバーへの絶対ファイルパスを公開しています。 –

+1

@daemon_x、ああ、私は遅すぎる:-(そして私はIndyの代替案にもなっている。 –

+0

最も重要なものは残っている;答えImageShackにファイルをアップロードする方法:) –

関連する問題