0
ファイルをアップロードするためにジャージのREST APIを作成しようとしています。ファイルを受信したら、ファイルを一時フォルダに保存し、処理のために別のサーバにファイルを送信する必要があります。私は受信ファイル名で一時フォルダにファイルを保存する部分に立ち往生しています。その名前を持つ複数のクライアントからアップロードされたファイルを処理する方法。同じ名前のファイルが最新のファイルに置き換えられるためです。私はファイルの名前を変更したくありません。これを処理する方法はありますか?以下はジャージはマルチパートファイルを受け取り、テンポラリフォルダに保存します
あなたはUUID
を検討する可能性があり、私の現在の実装
@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/file/Files.html#setAttribute-java.nio.file.Path-java.lang.String-java.lang.Object-java.nio.file.LinkOption ...-)。 –