修改jfreechart默认生成图形的保存路径

虽然很多这样文章,但笨笨的我还是费了半天才实现.
通过生成图片的方法saveChartAsPNG源码可以看到如下:(红色方法下面已标识,代表生成的文件,我们就需要在这里修改)
 public static String saveChartAsPNG(JFreeChart chart, int width, int height, ChartRenderingInfo info, HttpSession session)
    throws IOException
  {
    if (chart == null)
      throw new IllegalArgumentException("Null 'chart' argument.");

    createTempDir();
    String prefix = tempFilePrefix;
    if (session == null)
      prefix = tempOneTimeFilePrefix;

    File tempFile = File.createTempFile(prefix, ".png", new File(System.getProperty("java.io.tmpdir")));

    ChartUtilities.saveChartAsPNG(tempFile, chart, width, height, info);
    if (session != null)
      registerChartForDeletion(tempFile, session);

    return tempFile.getName();
  }
  protected static void createTempDir()
  {
    String tempDirName = System.getProperty("java.io.tmpdir");
    if (tempDirName == null) {
      throw new RuntimeException("Temporary directory system property (java.io.tmpdir) is null.");
    }

    File tempDir = new File(tempDirName);
    if (!(tempDir.exists()))
      tempDir.mkdirs();
  }

知道了原因就开始动工了。

1.如果很多地方用到还是 继承ServletUtilities 重写saveChartAsPNG这个方法吧.

2.createTempDir();  不用说去掉,根据

String dir =session.getServletContext().getRealPath("/");

 File file =new File(dir+"/jfreeCharPics");
   if(!file.exists()){
    file.mkdir();
   }

此目录为F:\chinahrt\chinahrt\WebContent\jfreeCharPics

3.那就是用自己的创建的路径保存图片

File tempFile = File.createTempFile(prefix, ".png",file);

到此已经结束了

4.引用图片,送佛送到西天,索性都写来

request.getContextPath()+ "/jfreeCharPics/"+ 上面返回的图片名称;

img 引用此资源就可以展示图片了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值