有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java更新的图像未被反射

我正在尝试裁剪图像。有一个对服务器端的ajax调用,在服务器端进行裁剪,并用裁剪后的图像替换原始文件。 现在,当我返回控件时,我仍然可以看到旧图像,即使剪切的图像存在于同一位置

更改只反映在页面刷新之后,我不希望用户这样做。裁剪图像的代码如下所示

            BufferedImage originalImgage = ImageIO.read(new File(filePath+"\\"+subFolder+"\\"+fileName));
            ImageIO.write(originalImgage,extention,new File(filePath+"\\"+subFolder+"\\"+dateStamp+"_"+fileName));//save original image

            BufferedImage SubImgage = originalImgage.getSubimage(xAxis,yAxis,width,height); 

            File outputfile = new File(filePath+"\\"+subFolder+"\\"+fileName);

            ImageIO.write(SubImgage,extention,outputfile);

请帮忙 谢谢


共 (2) 个答案

  1. # 1 楼答案

    经过努力终于找到了问题所在。图像由浏览器缓存。所以,每当你在同一个文件位置对图像进行任何操作时,都不会下载最新的副本。相反,缓存中的旧图像仍然被引用

    因此,解决方案是让浏览器下载最新版本。这很简单。 将虚拟参数附加到文件路径,强制浏览器下载
    rand = new Date().getTime();

    var image_Path = filePath+"?crop="+rand
    
  2. # 2 楼答案

    在ajax成功回调中,尝试用从ajax返回的新路径替换image src参数