4

XML ドキュメントを通過して画像 URL を抽出し、次のように CFHTTP を使用してそれらをダウンロードするスクリプトがあります。

<cfhttp method="get" url="#qTempImageData.url#" result="oHttp">
    <cfhttpparam type="CGI" name="http_referer" value="http://www.realestate.com.au" encoded="false" /> 
</cfhttp>
<cfimage action="write" destination="#APPLICATION.vTempPath#properties\#ListLast(qTempImageData.url, '/')#" source="#oHttp.FileContent.toByteArray()#" overwrite="yes" />

この問題は、URL 変数 "qTempImageData.url" が .png や .jpg などの画像拡張子で終わらないものである場合に発生します。たとえば、次のようになります。

http://img.agentaccount.com/f6ec41e07261cec1b9e120fc0186b1cf7e583d66

この URL は画像を提供し、画像が存在することを確認できますが、ファイル自体をホストする URL までたどることができないため、上記の CFHTTP コマンドで通常行うようにダウンロードします...

URL 変数のような「提供された」画像を説明できる方法はありますか?

〜エリセオ

4

1 に答える 1

3

リストした URL の場合、ファイルに関連付けられていたファイル名はなくなっているため、新しい名前を作成する必要があります。

ファイルを保存してから提供するために拡張子情報が必要であることが問題である場合、返された content-type ヘッダーを調べて、それを使用してファイル拡張子を決定することが 1 つの方法です。

したがって、ListLast() 呼び出しで決定されたファイル名が .jpg、.jpeg、.png などで終わらない場合は、oHttp.responseHeader["content-type"] を読み取ります。これは image/jpeg または image/ になります。 png を追加して、追加するファイル拡張子を決定します。

于 2012-11-07T09:46:55.450 に答える