J'essaie d'écrire une chemise REST api pour télécharger des fichiers. Après avoir reçu le fichier, je dois enregistrer le fichier dans un dossier temporaire et envoyer le fichier à un autre serveur pour le traitement. Je suis coincé à la partie où je sauvegarde le fichier dans un dossier temporaire avec le nom de fichier reçu. Comment gérer les fichiers téléchargés à partir de plusieurs clients avec le nom. Parce que les fichiers portant le même nom sont remplacés par le dernier fichier. Je ne veux pas renommer le fichier. Y at-il un moyen de gérer cela.Jersey recevoir un fichier multipart et le stocker dans le dossier temporaire
Ci-dessous mon implémentation actuelle
@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();
}
Je ne veux pas renommer le fichier. Je cherche d'autres moyens sans renommer. – arjun
@arjun Vous pouvez créer un répertoire avec un nom unique et stocker le fichier avec le nom d'origine dans le répertoire nouvellement créé. –
@arjun Cela peut être un peu hacky, mais si votre système de fichiers le supporte, vous pouvez conserver le nom du fichier _original_ comme [attribut du fichier] (http://docs.oracle.com/javase/8/docs/ api/java/nio/fichier/Files.html # setAttribute-java.nio.file.Path-java.lang.String-java.lang.Object-java.nio.file.LinkOption ...-). –