Сохранение файла PNG на сервере в Java-бине с использованием JSTL - PullRequest
0 голосов
/ 28 августа 2009

Я пишу страницу обновления в JSTL, где пользователь вводит некоторые цифры. Затем я вызываю Java-бин - передавая числа в качестве параметров - который, используя JFreeChart, создает изображение PNG. Все это прекрасно работает, когда я сохраняю файл прямо на жестком диске, используя

ImageIO.write (myBufferedImage, "png", новый файл ("C: /testChart.png"));

Я также могу сохранить изображение в своем каталоге tomcat и просмотреть его, когда я запускаю веб-сайт на моем локальном хосте. Однако, как только этот код установлен на сервере, который не является моим локальным хостом, сохранение в каталог tomcat не сработает. Как мне записать этот файл прямо на сервер ... скажем, в папку WebContent моего проекта Eclipse (где Java-бин находится в папке src)? Заранее спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 23 сентября 2009

Я бы предложил вам использовать класс ServletUtilities . Сохраняется в Java Tempdir и очищается, когда сеанс признан недействительным. :) Еще один совет для отображения файла - использовать сервлет DisplayChart для получения изображений. Это идет в 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>

Это то, как вы отображаете изображение с помощью jstl:

<img src="<c:url value='/servlet/DisplayChart?'><c:param name='filename' value='${yourFileNameHERE}' /></c:url>" alt=""/>
0 голосов
/ 28 августа 2009

Запишите его в путь к каталогу, возвращенный из System.getProperty ("java.io.tmpdir");

...