我们正在尝试从网址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()时,下载的图像将显示为空行。
因此,我们如何删除该空行或将输出流重置为空
如果我错了请纠正我
此致
约翰
答案 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);
它可能对您没有帮助,但您应该尝试一下。
如果我无法正确理解您的问题,请告诉我。