我正在尝试将一个文件上传到部署在Tomcat服务器上的RESTful泽西web服务,它是一个接收上传文件的多部分文件。它在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();
}多部分变量已经在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组,并将所有权限授予该路径,但没有任何结果。谢谢你的帮助。
发布于 2017-03-01 09:32:44
因此,在进行此操作之后,我发现文件写入失败或权限错误不会作为异常抛出,代码将正常工作,在本例中,解决此类问题的方法如下:
https://stackoverflow.com/questions/42356669
复制相似问题