6

TDownloadURLクラスを使用して(TFileStream)PDFを作成しようとしていますが、特にURLがHTTPSの場合、URLからファイル/ストリームを取得するのに本当に問題があります。

明確かどうかはわかりませんが、理解に役立つようにスニペットを投稿します。

implementation
var pdfStreamed: TDownloadUrl;
var fileStream : TFileStream;
  procedure generateStream;
  begin
    pdfStreamed:= TDownLoadURL.Create(nil);
    with pdfStreamed do
      begin
        URL := 'https://farm9.staticflickr.com/8327/8106108098_08e298f0d9_b.jpg'; //stream;
        FileName := 'D:\';
        ExecuteTarget(nil);
//        Execute;
      end;
  end;

URLプロパティは、HTTPSとHTTPSの両方に存在します。しかし、それは私にエラーをスローします:メッセージを伴う例外クラス例外'URLのダウンロードエラー:https ://farm9.staticflickr.com/8327/8106108098_08e298f0d9_b.jpg '。

私が間違っていることを指摘できますか?私はこれをたくさん検索しましたが、うまくいくシンプルなものは見つかりませんでした!

どうもありがとう!

4

2 に答える 2

7

TDownloadURLURLDownloadToFile()は、HTTPS を適切にサポートする Microsoft の関数の薄いラッパーです。

TDownloadURLURLDownloadToFile()残念ながら、失敗する理由はわかりません。ただし、プロパティをフォルダー パスのみに設定していることがわかりますがFileName、代わりに、ダウンロードしたデータを保持するために作成される宛先ファイルの完全なパスとファイル名に設定する必要があります。IOW、これを変更します:

FileName := 'D:\';

これに:

FileName := 'D:\8106108098_08e298f0d9_b.jpg';
于 2013-01-14T19:49:24.770 に答える
3

ファイル名を変更するというRemyの回答を使用して、保存する正しい場所を指定しますが、修正するには、 ExecuteTarget 行を次のように変更します

ExecuteTarget(Self);

これら 2 つの変更を加えてコードを試したところ、イメージが正常にダウンロードされました。基本的に、コンポーネントには、ここから参照するためのハンドルが必要です

于 2013-01-14T21:44:02.277 に答える