使用java从url复制图像

时间:2012-06-27 06:19:40

标签: java

我正在尝试从网址下载图片。我使用 Apache Commons 库:

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

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

更新。 谢谢你们的回答我不知道我需要得到connection.getContentType();,然后保存为jpg或png。

3 个答案:

答案 0 :(得分:2)

如果您检查网址,则为JPEG文件。将文件名重命名为test.jpeg ..

后尝试执行程序

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

--2012-06-27 16:55:30--  https://lh3.ggpht.com/AXYMUV5cpne2vE9U3X8x87HgrbwijwiG50_yOnehU2MUPKDoJky-BKFOPZzZ07Pug8U=h230
Resolving lh3.ggpht.com... 74.125.237.108, 74.125.237.106, 74.125.237.107, ...
Connecting to lh3.ggpht.com|74.125.237.108|:443... connected.
HTTP request sent, awaiting response... 
  HTTP/1.0 200 OK
  Access-Control-Allow-Origin: *
  ETag: "v1"
  Expires: Thu, 28 Jun 2012 06:50:40 GMT
  Content-Disposition: inline;filename="unnamed.jpg"
  Content-Type: image/jpeg
  X-Content-Type-Options: nosniff
  Date: Wed, 27 Jun 2012 06:50:40 GMT
  Server: fife
  Content-Length: 46597
  X-XSS-Protection: 1; mode=block
  Cache-Control: public, max-age=86400, no-transform
  Age: 290
  Connection: Keep-Alive
Length: 46597 (46K) [image/jpeg]
相关问题