我正在尝试将文件上传到Restful - 部署在Tomcat服务器上的Jersey Web服务,该服务是作为multipart接收上传的文件。它在Windows操作系统上完全正确,但在Linux上,文件无法保存,并且没有从以下保存方法抛出异常:
@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();
}
multipart变量已在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组,并授予该路径的所有权限,但没有任何结果。 感谢您的帮助。
答案 0 :(得分:0)
因此,在研究完之后我发现文件写入失败或者权限错误没有作为异常抛出,代码可以正常工作,在这种情况下可以采取以下措施来解决这类问题: