重複の可能性:
アップロードされた画像はページを更新した後にのみ利用可能
アプリケーションにファイルをアップロードするために primefaces を使用していますが、動作していますが、パスに問題があります。
私は netbeans IDE を使用しています。
次のコードが示すように、アップロードしたファイルを (Project\web\WEB-INF\photo) に保存しています。
public void FileUpload(FileUploadEvent event) throws IOException {
UploadedFile upfile = event.getFile();
InputStream in = new BufferedInputStream(upfile.getInputstream());
ExternalContext extContext =
FacesContext.getCurrentInstance().getExternalContext();
File file = new File(extContext.getRealPath
("//WEB-INF//photo//" + event.getFile().getFileName()));
FileOutputStream fout = new FileOutputStream(file);
byte[] bytes = new byte[1024];
while (in.available() != 0) {
fout.write(in.read());
}
fout.write(bytes);
fout.close(); .......
}
この方法は正しく機能しますが、アップロードされたファイルは必要なディレクトリ (Project\web\WEB-INF\photo) に存在しませんが、ビルド フォルダー (Project\build\web\WEB-INF\photo) の下にあるため、写真を表示しようとすると、ディレクトリに写真が存在しないというエラーが表示されます。
アイデアはありますか?そして、ファイルが必要なディレクトリではなくビルドの下に保存されるのはなぜですか??