Символ новой строки добавляется при загрузке изображения с URL
Мы пытаемся загрузить файл изображения с URL 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();
Загруженный файл поврежден. Нажмите здесь для скриншота. Когда я пытался открыть файл с помощью Notepad++, в начале файла добавлялась пустая строка.
При сохранении файла путем удаления пустой строки в начале файла, мы можем успешно открыть изображение.
Когда я изменил код и не записывал байты в pResponse.getOutputStream(), тогда загруженное изображение имеет пустую строку.
Итак, как мы можем удалить эту пустую строку или сбросить поток вывода на пустой
Пожалуйста, поправьте меня, если я ошибаюсь
С Уважением,
Джон
1 ответ
Я не знаю, почему добавляется пустая строка, но когда пытается создать тот же сценарий загрузки файла, я использовал этот код, и он работает нормально:
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);
Это может или не может быть полезным для вас, но вы должны попробовать.
Пожалуйста, дайте мне знать, если я не смог правильно понять ваш вопрос.