お世話になっております。
Windows7,Delphi2007です。
Indyで、JPEGファイルをダウンロードするには、どうしたらよいでしょうか。
テキストなら、
var
str:string;
begin
str:=IdHTTP1.Get('http://○○.html');
end;
でいいと思うんですけど、
IdHTTP1.Getの戻り値が、string型なので、Getではまずいのかな、と思いました。
実は、今まで、Getを使って、JPEGをダウンロードしていたんですけど、範囲チェックエラーというのが発生してしまったため、Getではまずいのかな、と思いました。
以前の質問で、
IdHTTPのGetで範囲チェックエラー
https://www.petitmonte.com/bbs/answers?question_id=4605
というのがあって、「範囲チェックエラー」が出るので、同じような対処をしたらよいかな、と思いましたが、こちらも解決されてないようでした。
今回は、画像(JPEG)をダウンロードしようとしているので、この質問とは違うかもしれませんが、よろしくお願いします。
TIdHTTP.Get() のオーバーロードされたメソッドを使えばいいと思います。
以下を参考にしてください。
http://edn.embarcadero.com/article/images/40857/a4.pdf#page=56
ものすごく返事が遅くなって、すみません。
教えていただいたサイトを参考にして、JPEGファイルのダウンロードができました。
ありがとうございました。
---------------------------------------
フォームにButton1、TIdHTTP1を置く。
procedure TForm1.Button1Click(Sender: TObject);
var
HTTP: TIdHttp;
MS: TMemoryStream;
URL: String;
FileName: String;
begin
HTTP := TIdHttp.Create;
MS := TMemoryStream.Create;
try
URL :='http://officeimg.vo.msecnd.net/ja-jp/files/614/832/ZA103920861.jpg';
HTTP.Get(URL, MS);
MS.Position := 0;
FileName :='file.jpg';
MS.SaveToFile(FileName);
finally
MS.Free;
HTTP.Free;
end;
end;
ツイート | ![]() |