java - 如何从 Java 服务器端发送图像,并在 JQuery 客户端处理它

标签 java jquery ajax image servlets

我想重新缩放图像并将其返回给客户端,但在将图像发送回客户端时遇到了一些麻烦。

我的服务器端 Controller :

@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-overview Debugger-info-detailed

那么问题是:如何在客户端显示图像?

最佳答案

我只需将调整大小的图像保存在服务器上,然后返回 jquery 简单的保存调整大小的图像的 URL。然后只需将图像的 src 属性设置为该 URL。浏览器将负责下载图像。

uploadButton.click(function(){
    $('#imagePreview').addClass('loading');
    form.ajaxSubmit(function(data){
        //Assuming data is the URL to the resized image.
        $("#myimage").attr("src", data);
    });
});

关于java - 如何从 Java 服务器端发送图像,并在 JQuery 客户端处理它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753281/

相关文章:

java - 使用 ArrayList 比 Java 中的简单数组贵得多吗?

java - 在 jsp 上列出 vector 数据

jQuery - 单击菜单项时停止折叠式菜单关闭

javascript - 带有变量的 jQuery 选择器,当变量改变时不更新

javascript - 对变量的 JSON 调用的结果

javascript - 从 FOR 循环生成的 SELECT 列表中选择 OPTION

java - 来自 Java 的 Ruby 中的 HMAC

java - 未找到 sdk_config.properties

jquery - 如何检索标签的内容?

javascript - 为不同的 HTML 按钮编写不同的 PHP 代码 (AJAX)