Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    48
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Io ho indicato 3 possibilità ben diverse, le hai comprese?
    Quando dici "vado a recuperare un oggetto (un pdf)" cosa intendi? da un BLOB su un DB? Se è così, questo recupero del PDF lo fai quando? O per meglio dire: a seguito di quale request da parte del client? Per essere più precisi: a seguito di un click su un link es. "Scarica PDF"?
    Certo le ho comprese, il processo di recupero del pdf è questo : l'utente clicca un tasto (che è il download del pdf), da qui parte una servlet che a sua volta interroga un web service che ritorna il pdf. Ora l'obiettivo è FAR APRIRE una finestra del browser con il pdf all'interno. Quindi ritornare al client il path del pdf scritto su file e far window.open(path), oppure raggiungo lo stesso obiettivo se scrivo lo stream nella response?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Pippozzo Visualizza il messaggio
    Ora l'obiettivo è FAR APRIRE una finestra del browser con il pdf all'interno.
    Faccio solo una premessa più in generale: quando si tratta di gestire lato client da browser dei tipi di documenti "particolari", es. pdf, xls, doc, ecc.... come essi saranno "aperti" dipende principalmente dalle impostazioni del browser e in parte anche da cosa eventualmente sceglie l'utente.
    Mi spiego meglio: nel browser potrebbe essere attivo il plugin di Adobe Reader, nel qual caso un link ad un PDF potrebbe aprirsi con Adobe Reader incorporato nella pagina. Ma potrebbe essere disabilitato o potrebbe esserci un altro plugin che gestisce i PDF (es. io uso principalmente Firefox e nelle versioni più recenti ha un suo plugin per i PDF che non è comunque al livello di Adobe Reader ma è sufficiente in molti casi). L'utente potrebbe voler aprire il PDF esternamente al browser con la applicazione "predefinita" (quindi non incorporata nella pagina) oppure semplicemente scaricare e salvare il file su file-system.

    Visto che le possibilità sono molteplici e il server generalmente ha ben poco controllo (limitato solo alla impostazione del content-type nella response) su come verrà aperto dal client, la soluzione più semplice e lineare è solo una: a seguito di una request al server, inviare al client lo stream binario pari pari del contenuto del PDF, specificando un content-type appropriato, es. "application/pdf". Se si vuole si può specificare es. "application/octet-stream" che il browser spesso (tipicamente) gestisce mostrando la classica dialog "apri con... o salva come..." (ma l'ultima parola spetta comunque al browser e a come è configurato!).

    Quote Originariamente inviata da Pippozzo Visualizza il messaggio
    Quindi ritornare al client il path del pdf scritto su file e far window.open(path), oppure raggiungo lo stesso obiettivo se scrivo lo stream nella response?
    Potresti anche inviare direttamente lo stream del PDF nella response. Senza sapere altro comunque non posso sospettare problemi che ci potrebbero essere a riguardo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    48
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Faccio solo una premessa più in generale: quando si tratta di gestire lato client da browser dei tipi di documenti "particolari", es. pdf, xls, doc, ecc.... come essi saranno "aperti" dipende principalmente dalle impostazioni del browser e in parte anche da cosa eventualmente sceglie l'utente.
    Mi spiego meglio: nel browser potrebbe essere attivo il plugin di Adobe Reader, nel qual caso un link ad un PDF potrebbe aprirsi con Adobe Reader incorporato nella pagina. Ma potrebbe essere disabilitato o potrebbe esserci un altro plugin che gestisce i PDF (es. io uso principalmente Firefox e nelle versioni più recenti ha un suo plugin per i PDF che non è comunque al livello di Adobe Reader ma è sufficiente in molti casi). L'utente potrebbe voler aprire il PDF esternamente al browser con la applicazione "predefinita" (quindi non incorporata nella pagina) oppure semplicemente scaricare e salvare il file su file-system.

    Visto che le possibilità sono molteplici e il server generalmente ha ben poco controllo (limitato solo alla impostazione del content-type nella response) su come verrà aperto dal client, la soluzione più semplice e lineare è solo una: a seguito di una request al server, inviare al client lo stream binario pari pari del contenuto del PDF, specificando un content-type appropriato, es. "application/pdf". Se si vuole si può specificare es. "application/octet-stream" che il browser spesso (tipicamente) gestisce mostrando la classica dialog "apri con... o salva come..." (ma l'ultima parola spetta comunque al browser e a come è configurato!).


    Potresti anche inviare direttamente lo stream del PDF nella response. Senza sapere altro comunque non posso sospettare problemi che ci potrebbero essere a riguardo.
    Ciao andbin, alla fine ho risolto integrando il flusso direttamente all'interno della response. Grazie tanto per il supporto

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.