Как ответили много раз до , вы должны не хранить / размещать загруженные файлы в общедоступном веб-контенте.Вместо этого вы должны использовать абсолютный путь.Например,
File file = new File("/path/to/images", filename);
// ...
Загруженный файл магически отсутствует в расширенной WAR, поэтому чтение его с помощью FileInputStream
не будет работать вообще.Вы должны прочитать его из event.getFile().getInputStream()
, а затем записать в произвольный OutputStream
, например FileOutputStream
.
Но теперь ваша реальная проблема более ясна, чем в вашейпредыдущие вопросы.Вы, кажется, хотите сохранить загруженный файл в базе данных.Затем не нужно , чтобы сначала сохранить файл в файловой системе локального диска.Просто направьте полученные байты непосредственно в byte[]
и сохраните его в БД.
InputStream input = event.getFile().getInputstream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
for (int length; (length = input.read(buffer)) > -1;) {
output.write(buffer, 0, length);
}
photoBean.setByteImage(output.toByteArray());