Téléchargement de fichiers à l'aide de service REST

- Je utiliser de REPOS après le service (à partir de ce tutoriel) pour faire de l'upload de fichiers à partir d'un divers nombre de clients à mon serveur GlassFish, à l'aide de jersey multipart mise en œuvre:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataParam;
@Path("/fileupload")
public class UploadFileService {
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
String uploadedFileLocation = "c://uploadedFiles/" + fileDetail.getFileName();
//save it
saveToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded via Jersey based RESTFul Webservice to: " + uploadedFileLocation;
return Response.status(200).entity(output).build();
}
//save uploaded file to new location
private void saveToFile(InputStream uploadedInputStream,
String uploadedFileLocation) {
try {
OutputStream out = null;
int read = 0;
byte[] bytes = new byte[1024];
out = new FileOutputStream(new File(uploadedFileLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Ce code fonctionne très bien pour moi, mais j'ai remarqué suivantes:

  1. d'abord, le fichier est téléchargé quelque part dans le serveur
  2. la méthode uploadFile(...) est déclenchée avec un InputStream à l'
    fichier à télécharger, donc je peux en faire une copie à l'endroit désiré à l'aide de
    saveToFile(...)

Mes questions sont:

  • où se trouve le fichier (voir (1) ci-dessus), d'abord stockées?
  • Comment faire pour supprimer le fichier téléchargé afin de libérer des ressources?

Mise à JOUR de 1

Joint l'InputStream dump:
Téléchargement de fichiers à l'aide de service REST

La chose étrange ici .tmp fichier de capture d'écran est de 0 octets!
L' .tmp est supprimé après.close()

Bonjour pouvez vous s'il vous plaît partager le côté client de la mise en œuvre, je veux savoir comment faire pour envoyer un fichier à ce service? merci
fait le code ci-dessus fonctionne pour vous? Depuis il ne fonctionne pas pour moi. Pouvez-vous s'il vous plaît aider moi
pouvez vous s'il vous plaît de partager vos exception ou une description de ce que vous faites et ce qui ne fonctionne pas?

OriginalL'auteur filip_j | 2013-07-12