JSF: как сохранить поток в виде файла вне веб-приложения и как получить к нему доступ при развертывании в режиме войны - PullRequest
1 голос
/ 24 июля 2011

У меня есть пара вопросов здесь.

  1. Я использую следующее для записи потока в файл.Я хочу написать вне контейнера веб-приложения, так как при повторном развертывании все файлы будут удалены.

                InputStream in = event.getFile().getInputstream();    
                OutputStream out = new FileOutputStream(path + fName);
    
    
                byte[] buf = new byte[1024];
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
    
  2. Я не знаю, сможем ли мы достичь этого с помощью externalContext of FaceContext.Если да, приведите пример, как это сделать.

  3. Как я могу получить к этому доступ?Например, если мне нужно использовать его следующим образом, какой путь мне нужно использовать?

    EmailAttachment attachment = new EmailAttachment(); attachment.setPath("mypictures/john.jpg");

Заранее спасибо!

1 Ответ

3 голосов
/ 24 июля 2011

Вы все делаете правильно. Используйте (например) каталог пользователя tmp для записи этого файла (System.getProperty("user.tmp.dir")). Для доступа к этому файлу используйте FileInputStream точно так же, как вы используете FileOutputStream.

...