Comment envoyer des fichiers PDF fichier de données comme une réponse à l'aide de Servlet?
Mon exigence est de répondre le PDF de données pour le client mobile(iPhone) à l'aide de HTTP Servlet.
J'ai fait de la manière suivante, Mais je n'obtiens pas les résultats attendus par le client.
PrintWriter out = response.getWriter();
String aInputFileName = "/Users/hcl/Desktop/Easwar/sample.pdf";
log("Reading in binary file named : " + aInputFileName);
File file = new File(aInputFileName);
log("File size: " + file.length());
byte[] result = new byte[(int)file.length()];
System.out.println("Length : "+ result.length);
try {
InputStream input = null;
try {
int totalBytesRead = 0;
input = new BufferedInputStream(new FileInputStream(file));
while(totalBytesRead < result.length){
int bytesRemaining = result.length - totalBytesRead;
//input.read() returns -1, 0, or more :
int bytesRead = input.read(result, totalBytesRead, bytesRemaining);
if (bytesRead > 0){
totalBytesRead = totalBytesRead + bytesRead;
}
}
response.setHeader("Content-Type", "application/pdf");
out.println(result);
Est la méthode que je suis de droite? S'il vous plaît conseils.
Grâce.
- est PrintWriter out = response.getWriter(); Modifié à ma question. Avez-vous encore dire que pour utiliser write(), si oui comment le faire.
- Utilisation
ServletOutputStream out
et vous avez besoin d'utiliserwrite()
surout
. - ServletOutputStream cela fonctionne. Pourriez-vous nous parler de la même chose en réponse. Je vais l'accepter.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser ServletOutputStream et ses write() procédé pour écrire les octets de la réponse .