Я хочу изменить масштаб изображения и вернуть его клиенту, и у меня возникли проблемы с отправкой изображения обратно клиенту.
Мой серверный контроллер:
@RequestMapping(value = {"/fw/ajax/submit_profileimage.do"})
public void submitFile(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile f) {
try {
InputStream in = new ByteArrayInputStream(f.getBytes());
BufferedImage originalImage = ImageIO.read(in);
BufferedImage newImage = new BufferedImage(MAX_HEIGHT, MAX_WIDTH, BufferedImage.TYPE_INT_RGB);
paintComponent(newImage.getGraphics(), originalImage, getRatio(originalImage));
ImageIO.write(newImage, "png", response.getOutputStream());
response.setContentType("image/png");
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
Код Jquery на стороне клиента:
uploadButton.click(function(){
$('#imagePreview').addClass('loading');
form.ajaxSubmit(function(data){
alert(data); //this is where I'd like to handle the image!
});
});
данные, возвращаемые ajaxSubmit:
"<body style="margin: 0px;"><img style="-webkit-user-select: none" src="http://localhost:8080/fairview/ajax/submit_profileimage.do"></body>"
Очевидно, что это не файл изображения.Но когда я проверяю отладчик, я вижу, что запрос submit_profileimage.do успешно выполнен и якобы вернул изображение!Я понятия не имею, сделал ли я что-то не так на стороне клиента или на стороне сервера.
![Debugger-info-detailed](https://i.stack.imgur.com/3Fwyu.png)
Итак, вопрос: как я могу отобразить изображение на стороне клиента?