Saving a PNG file on a server in a Java bean, using JSTL

跟風遠走 提交于 2019-11-28 02:19:53

问题


I am writing an update page in JSTL where the user inputs some numbers. I then call a java bean - passing the numbers as parameters - which, using JFreeChart, creates a PNG image. All of this works fine when I save the file directly on my hard drive using

ImageIO.write(myBufferedImage, "png", new File("C:/testChart.png"));

I can also save the image to my tomcat directory and view it when I am running the website on my localhost. However, once this code is up on a server that is not my local host, saving to the tomcat directory won't work. How do I write this file directly to the server..say to the WebContent folder of my Eclipse project (where the java bean is in the src folder)? Thanks in advance for any help.


回答1:


I would suggest that you use the ServletUtilities class. It saves in the java tempdir AND cleans up when the session is invalidated. :) Another hint for then displaying the file is to use the DisplayChart servlet to get your images. This goes in web.xml

      <servlet>
    <servlet-name>DisplayChart</servlet-name>
    <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
  </servlet>
   <servlet-mapping>
        <servlet-name>DisplayChart</servlet-name>
        <url-pattern>/servlet/DisplayChart</url-pattern>
    </servlet-mapping>

This is then how you display the image using jstl:

<img src="<c:url value='/servlet/DisplayChart?'><c:param name='filename' value='${yourFileNameHERE}' /></c:url>" alt=""/>



回答2:


Write it to the directory path returned from System.getProperty("java.io.tmpdir");



来源:https://stackoverflow.com/questions/1347417/saving-a-png-file-on-a-server-in-a-java-bean-using-jstl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!