Я пытаюсь загрузить файл в спокойную веб-службу Джерси, развернутую на сервере Tomcat, которая принимает загруженные файлы как multipart. Он работает полностью правильно на ОС Windows, но в Linux файл не удается сохранить без исключения, брошенной из следующего метода экономии:Загруженный файл не может быть сохранен без каких-либо исключений, возникших в Java - Jersey
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadProductImage(
@FormDataParam("file") final InputStream uploadedInputStream,
@FormDataParam("file") final FormDataContentDisposition cdh,
@FormDataParam("file") final FormDataBodyPart body
) {
FileManager fileManager = new FileManager();
String fileName;
try {
int read = 0;
byte[] bytes = new byte[1024];
OutputStream out = new FileOutputStream(new File("/home/files"));
while ((read = uploadedInputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return Response.status(Response.Status.CREATED).entity(gson.toJson(cdh.getName())).build();
}
Мультисекционный переменная уже объявлена в файле web.xml, как:
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
Как видно из кода, целевой путь «/ home/files».
Я уверен, что путь существует, и я уже пытался изменить владельца целевого файла в группу tomcat и предоставил все разрешения на путь без каких-либо результатов. Я ценю вашу помощь.
* Я уверен, что путь существует * Я бы сомневался, что у вас есть разрешение, если оно существует. Пожалуйста, покажите код, который ловит ваше исключение –
Где и что означает 'uploadedInputStream'? Если он не откроет файл, то отображаемое не будет работать –
Я показываю весь метод в этом обновлении, и поскольку он загружается, файл может не существовать ранее. – MrMisery