3

我正在尝试从 URL 下载图像。我使用Apache Commons库:

org.apache.commons.io.FileUtils
                .copyURLToFile(
                        new URL(
                                "https://lh3.ggpht.com/AXYMUV5cpne2vE9U3X8x87HgrbwijwiG50_yOnehU2MUPKDoJky-BKFOPZzZ07Pug8U=h230"),
                        new File("test.png"));

打开图像时,它说不是PNG文件。这是将图像从 url 下载到本地的好方法吗?

更新 。谢谢你们的回答,我不明白我需要获取connection.getContentType();然后将其保存为 jpg 或 png 原样。

4

3 回答 3

2

如果你检查 url,它是 JPEG 文件。将文件名重命名为 test.jpeg 后尝试执行程序。

于 2012-06-27T06:28:42.297 回答
2

检查内容类型请参阅此SO Question。然后使用它将文件保存为正确的类型。

于 2012-06-27T06:45:20.433 回答
0

在这个 URL 上运行 wget 并查看 HTTP 响应,看起来文件类型被明确指定为 JPEG:

--2012-06-27 16:55:30-- https://lh3.ggpht.com/AXYMUV5cpne2vE9U3X8x87HgrbwijwiG50_yOnehU2MUPKDoJky-BKFOPZzZ07Pug8U=h230
正在解析 lh3.ggpht.com... 74.125.237.108, 74.125.237.106, 74.125.237.107, ...
正在连接到 lh3.ggpht.com|74.125.237.108|:443... 已连接。
已发送 HTTP 请求,等待响应...
  HTTP/1.0 200 正常
  访问控制允许来源:*
  电子标签:“v1”
  到期:2012 年 6 月 28 日星期四 06:50:40 GMT
  内容处置:inline;filename="unnamed.jpg"
  内容类型:图片/jpeg
  X-Content-Type-Options: nosniff
  日期:格林威治标准时间 2012 年 6 月 27 日星期三 06:50:40
  服务器:菲菲
  内容长度:46597
  X-XSS-防护:1;模式=块
  缓存控制:公共,最大年龄=86400,无转换
  年龄:290
  连接:保持活动
长度:46597 (46K) [图片/jpeg]
于 2012-06-27T06:57:00.400 回答