JSF:我如何将流保存为webapp之外的文件以及如何在部署为战争时访问它

时间:2011-07-24 10:42:13

标签: java jsf deployment glassfish primefaces

我在这里有几个问题。

  1. 我正在使用以下内容将流写入文件。我想在webapp容器外面写,因为在重新部署时,所有文件都将被删除。

                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. 我不知道是否可以通过facesContext的externalContext实现这一点。如果是这样,请给我一个如何做的例子。

  3. 我该如何访问?例如,如果我必须按如下方式使用它,我必须使用哪条路径?

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

  4. 提前致谢!

1 个答案:

答案 0 :(得分:3)

你正在做的一切正确。使用(例如)用户tmp目录来写入此文件(System.getProperty("user.tmp.dir"))。要访问此文件,请使用与FileInputStream完全相同的方式使用FileOutputStream