使用delphi将图像上传到imageshack
Posted
技术标签:
【中文标题】使用delphi将图像上传到imageshack【英文标题】:Upload image to imageshack with delphi 【发布时间】:2011-07-31 05:41:25 【问题描述】:我有 API 密钥并阅读了他们网站上的稀疏文档,但仍然无法使其正常工作,因此如果有人有任何示例可以分享,那就太好了。我不需要担心视频或任何花哨的东西,只需简单的上传返回信息即可满足我的需求。
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;
谢谢。 凯文
【问题讨论】:
在有人尝试帮助您之前,您应该提供“不起作用”的代码... 代码...>>> pastebin.com/sRFj3u7z 您的代码中没有发送“实际”图像,请阅读forums2.atozed.com/viewtopic.php?f=7&t=14992 gambit的评论,它应该可以帮助您实现您的需求,如果您遇到问题,请发布代码并指出问题。此外,了解您的 Delphi 版本(即 7、2009、2010、XE 等)和 Indy 应该对我们有更多帮助。 【参考方案1】:昨晚我几乎做了同样的事情。谢谢。
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;
【讨论】:
注意,Indy 以这种方式公开了服务器的绝对文件路径。 @daemon_x,啊,我来晚了 :-( 我也喜欢 Indy 替代品。 最重要的遗体;答案如何将文件上传到 ImageShack :)以上是关于使用delphi将图像上传到imageshack的主要内容,如果未能解决你的问题,请参考以下文章