2013-01-14 10 views
6

TDownloadURLクラスを使用してPDFを(TFileStream)作成しようとしましたが、実際にURLからファイル/ストリームを取得する際に問題が発生しています。TDownloadURLはHTTPSからダウンロードできません

私ははっきりしていたかどうかわからないんだけど、それは理解を助けるかもしれないので、私はスニペットをポストします:

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のように、両方のHTTPに存在します!メッセージ「:https://farm9.staticflickr.com/8327/8106108098_08e298f0d9_b.jpg URLのダウンロードエラー」と Exceptionクラス例外:しかし、それは私にエラーがスローされます。

私が間違っているの何点か?私はこれをたくさん検索しましたが、うまくいくものは見つけられませんでした!

ありがとうございます!

答えて

5

TDownloadURLは罰金だけでHTTPSをサポートするMicrosoftのURLDownloadToFile()機能、周りだけ薄いラッパーです。 URLDownloadToFile()が失敗した理由を

TDownloadURLは、残念ながら、あなたに教えてくれありません。しかし、FileNameプロパティをフォルダパスだけに設定しているのがわかりますが、ダウンロードしたデータを保持するために作成するコピー先ファイルのフルパスとファイル名に設定する必要があります。 IOW、これを変更します。これに

FileName := 'D:\'; 

FileName := 'D:\8106108098_08e298f0d9_b.jpg'; 
+0

お返事ありがとうございます。私はすでにこのソリューションを試してみました。 「URLのダウンロード中にエラーが発生しました」と表示され続けます。私はそれが単なるラッパーだと理解しましたが、デプリーがこの呼び出しに影響を与える可能性がありますそれは私にエラーを投げるでしょうか? :私はHTTPとHTTPSを交換する場合は、\ところで 、それは働きます!しかし、私は本当にあなたが 'URLDownloadToFile()' '自体はTDownloadURL'、ない失敗している手段を見ているHTTPS = \ –

+0

エラーメッセージが必要です。これは単なる普通のAPI関数呼び出しです。 'URLDownloadToFile()'が失敗した理由を知りたければ、直接呼び出す必要があります。その結果、エラーコード(TDownloadURLはアクセスを公開しません)にアクセスできるようになります。 –

3

保存する正しい場所を指定するには、しかし、修正

ような何かにあなたのExecuteTargetメソッドラインを変更するには、ファイル名の変更の使用レミーの答え

ExecuteTarget(Self);

これらの2つの変更でコードを試したところ、画像が正常にダウンロードされました。本質的に、コンポーネントは参照するハンドルを必要としますHere

関連する問題