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

该网址似乎有问题。它在 Internet Explorer 中为我工作,但使用 google chrome 浏览器开始下载“GetBinary.aspx”文件,也许这就是你得到的4ks文件。

于 2012-12-03T22:25:39.823 回答
0

好吧,我想这是由于授权限制

您的代码、Carlos和我自己获得 4K 文件的原因是因为我们无权访问所请求的文件。

我猜您已经使用某种登录程序通过浏览器访问该站点,或者位于允许该站点使用您的 NT 令牌的受信任网络上。

似乎证实了这一假设的是,当我将 GetBinary.aspx 文件的扩展名更改为jpeg时,我获得了一种“禁止”图标。

因此,您可能需要从代码中做更多的工作来进行身份验证

编辑:使用带有 Cygwin的“NIX文件实用程序”给出:

JPEG image data, JFIF standard 1.01

所以你得到的确实是一张JPEG图像。

于 2012-12-03T22:46:18.150 回答