1

VS2008、.NET Framework 3.5でイメージファイルをダウンロードして保存しようとしていますが、結果のファイルが小さすぎます。

ブラウザでhttp://www-nass.nhtsa.dot.gov/nass/cds/GetBinary.aspx?Image&ImageID=682367204に移動すると、68kファイルとしてダウンロードできます。ただし、次のコードを使用すると、4k未満のファイルが得られます。

using (WebClient webClient = new WebClient()) {
  webClient.DownloadFile("http://www-nass.nhtsa.dot.gov/nass/cds/GetBinary.aspx?Image&ImageID=682367204", @"D:\\682367204.jpg");
}

更新:まだファイルをダウンロードしていない資格情報を持つWebClientは、私の問題の原因(および解決策)を説明している可能性があります。

4

2 に答える 2

0

まあ、これは権限制限によるものだと思います。

あなたのコード、Carlosと私が 4K ファイルを取得する理由は、要求されたファイルにアクセスする権利がないためです。

ブラウザでサイトにアクセスするために一種のログイン手順を使用したか、サイトが NT トークンを使用できる信頼できるネットワーク上にいると思います。

この仮説を裏付けるように見えるのは、GetBinary.aspx ファイルの拡張子をjpegに変更すると、一種の「禁止」アイコンが表示されるということです。

そのため、認証するためにコードからさらに多くの作業を行う必要がある場合があります。

編集: Cygwin で'NIXファイルユーティリティを使用すると、次のようになります。

JPEG image data, JFIF standard 1.01

したがって、実際に得られるのは JPEG 画像です。

于 2012-12-03T22:46:18.150 に答える
0

そのURLに何か問題があるようです。Internet Explorerで動作していますが、Google Chromeを使用すると、ブラウザが「GetBinary.aspx」ファイルのダウンロードを開始します。おそらくそれが取得している4ksファイルです。

于 2012-12-03T22:25:39.823 に答える