Visualizzazione dei risultati da 1 a 10 su 12

Visualizzazione discussione

  1. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da melmar20 Visualizza il messaggio
    Ciao a tutti, ho realizzato una servlet Java per la creazione di un file.
    Dove è posizionato il file rispetto alla web application?

    Quote Originariamente inviata da melmar20 Visualizza il messaggio
    Ora però non so come fare scaricare all'utente il file creato.
    La soluzione è avere un'altra servlet che si occupa del download del file. Il principio basilare è che basta ottenere un InputStream del file e poi leggere a blocchi di byte e buttarli pari-pari sul OutputStream (il ServletOutputStream della response, che è-un OutputStream).
    Però bisogna anche settare degli header in modo appropriato. Sicuramente il Content-Type affinché un client possa dedurre come trattare il documento. Se vuoi che qualunque browser faccia il download senza sapere altro, si può usare il content type "application/octet-stream".
    Poi visto che è un file e sai a priori la lunghezza, sarebbe anche utile ed appropriato impostare il header Content-Length.
    Si può anche impostare il Content-Disposition per indicare che è un attachment con un certo nome specifico.
    Poi si possono facoltativamente impostare altri header per permettere o impedire il caching.

    Per lo streaming si possono anche usare metodi di librerie apposite come la Apache Commons IO che ha una classe FileUtils con un comodissimo metodo public static long copyFile(File input, OutputStream output)
    Ultima modifica di andbin; 25-11-2016 a 10:34
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.