如何从java

时间:2018-05-26 21:49:53

标签: java size

我想从网址获取图片大小。 我的源代码在本地工作但是aws Ubuntu服务器将返回-1。 有什么问题?

URL url=new URL("https://www.bithumb.com/resources/img/comm/sp_coin.png?v=180510");

int image_size = url.openConnection().getContentLength();

System.out.println("mage size:: "+image_size);

2 个答案:

答案 0 :(得分:0)

如果服务器没有使用有效的Content-Length标头回复,则getContentLength会返回-1。作为替代方案,您始终可以获得返回数据的大小:

size = IOUtils.toByteArray(url.openStream()).length;

使用Apahe commons IO IOUtils

答案 1 :(得分:0)

  

有什么问题?

很难说。但是,最终要由Web服务(而不是Ubuntu或AWS)的实现来在响应中包含内容长度。

因此,如果您想找出为什么(并修复它),您需要检查(您的?)Web服务的实现,以及它如何创建响应。

正如@jspcal指出的那样,你可以解决这个问题。但为了做到这一点,您需要(至少)从响应数据流中读取整个图像。这是否是一个可行/有效的解决方案取决于您打算何时/何时使用内容长度。