j2ee primefaces fileupload место сохранения файла

Сегодня у меня проблема с PrimeFaces FileUpload. Это прекрасно работает, но файлы хранятся во временном каталоге JBoss, поэтому всякий раз, когда я повторно развертываю приложение или просто фиксирую источники в svn, все загруженные мной изображения исчезают. Поэтому я хотел спросить, есть ли способ сохранить изображения в "исходный" каталог военного проекта.

Мой метод handleFileUpload:

public String getUrlBase() {
    return FacesContext.getCurrentInstance().getExternalContext().getRealPath("//upload");
}

public void handleFileUpload(FileUploadEvent event) {
        new File(getUrlBase() + "/" + album.getId()).mkdirs();
        File result = new File(getUrlBase() + "/" + album.getId() + "/" + event.getFile().getFileName());

        try {
            FileOutputStream fileOutputStream = new FileOutputStream(result);

            byte[] buffer = new byte[BUFFER_SIZE];

            int bulk;
            InputStream inputStream = event.getFile().getInputstream();
            while (true) {
                bulk = inputStream.read(buffer);
                if (bulk < 0) {
                    break;
                }
                fileOutputStream.write(buffer, 0, bulk);
                fileOutputStream.flush();
            }

            fileOutputStream.close();
            inputStream.close();

            FacesMessage msg = new FacesMessage("Succesful",
                    event.getFile().getFileName() + " is uploaded.");
            FacesContext.getCurrentInstance().addMessage(null, msg);

        } catch (IOException e) {
            e.printStackTrace();
            FacesMessage error = new FacesMessage("The files were not uploaded!");
            FacesContext.getCurrentInstance().addMessage(null, error);
        }
    }

РЕДАКТИРОВАТЬ: другая проблема

мой файл представления:

<h:form enctype="multipart/form-data" prependId="false">
        <p:growl id="messages" showSummary="true" showDetail="true" />
        <p:fileUpload fileUploadListener="#{photo.handleFileUpload}"
                      update="messages"  sizeLimit="1073741824"
                      multiple="true" label="choose" allowTypes="*.jpg;*.png;*.gif;"
                      description="Images" />
    </h:form>

Когда я добавляю update = "messages" в fileUpload Я получаю

javax.servlet.ServletException: null source

всякий раз, когда пытаюсь просто открыть страницу с fileUpload. Разве вы не знаете, как от него избавиться?

6
задан El_w 5 December 2010 в 16:35
поделиться