0
我正在尝试编写一个泽西岛REST api来上传文件。收到文件后,我必须将文件保存在某个临时文件夹中,并将文件发送到另一台服务器进行处理。我被困在使用收到的文件名将文件保存在临时文件夹中的部分。如何处理使用名称从多个客户端上传的文件。因为具有相同名称的文件被最新文件替换。我不想重命名文件。有没有办法处理这个问题。泽西岛接收多部分文件,并将其存储在临时文件夹中
下面是我目前的执行
@POST @Path("/uploadfile") @Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetails, @FormDataParam("meta") String requestMeta) {
String fileLocation = System.getProperty("java.io.tmpdir") + "/"+ System.currentTimeMillis() + "/" + fileDetails.getFileName(); //rename file with timestamp which I need to find a another way so that I can persist my file name
File file = writeToFile(uploadedInputStream,
fileLocation);
return Response.status(Response.Status.OK).entity(uploadAndGetDetails(file, requestMeta)).build();
}
我不想重命名文件。我正在寻找其他方式,而无需重命名。 – arjun
@arjun您可以创建一个具有唯一名称的目录,并将原始名称的文件存储到新创建的目录中。 –
@arjun它可能有点不好意思,但是如果你的文件系统支持它,你可以将_original_文件名作为[文件的属性]保留下来(http://docs.oracle.com/javase/8/docs/ API/JAVA/NIO /文件/ Files.html#的setAttribute-java.nio.file.Path-java.lang.String中-java.lang.Object继承-java.nio.file.LinkOption ...-)。 –