从url下载图像时会添加换行符

时间:2018-07-24 15:41:21

标签: java url download inputstream

我们正在尝试从网址https://test.com/images/123.jpg下载图像文件

URL url = new URL("https://test.com/images/123.jpg");

InputStream inputStream = url.openStream();
byte[] buffer = new byte[2048];
pResponse.setContentType("application/octet-stream");
pResponse.setHeader("Content-Disposition","attachment;filename=\""123.jpg\"");

while ((inputStream.read(buffer)) != -1) {
    pResponse.getOutputStream().write(buffer);
}
pResponse.getOutputStream().flush();
pResponse.getOutputStream().close();

inputStream.close();

下载的文件已损坏。点击here截屏。当我尝试使用Notepad ++打开文件时,在文件的开头会添加一个空行。

通过删除文件开头的空行来保存文件时,我们能够成功打开图像。

当我更改代码并且未将字节写入pResponse.getOutputStream()时,下载的图像将显示为空行。

因此,我们如何删除该空行或将输出流重置为空

如果我错了请纠正我

此致

约翰

1 个答案:

答案 0 :(得分:0)

我不知道为什么会添加空行,但是当尝试创建下载文件的相同场景时,我使用了此代码,并且运行良好:

URL url = new URL("http://localhost:8080/HTMLCS/Images/OCR.PNG");
        BufferedImage img = ImageIO.read(url);
        File file = new File("C:\\Users\\username\\Desktop\\RegressionTests\\OCR.png");
        ImageIO.write(img, "png", file);

它可能对您没有帮助,但您应该尝试一下。
如果我无法正确理解您的问题,请告诉我。