Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324

    salvataggio del file da remoto

    Ciao a tutti,

    ho aperto questa discussione perchè mi trovo in difficoltà su come poter effettuare il salvataggio di un file in remoto.
    Mi spiego meglio, sto creando un applicazione dove gestisce la creazione del Curriculum Vitae.
    Tutto questo avviene gestito tutto online ma al momento del salvataggio dei dati inseriti vorrei che si aprisse una finestra dove l'utente sceglie il percorso di destinazione del file.pdf che verrà generato al momento del salvataggio.

    Adesso mi chiedo tale operazione è possibile effettuarla con java? Se si sapreste dirmi come?

    Grazie anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non si capisce molto: dove deve essere salvato il file? Sul server dove è generato oppure sul computer/dispositivo di chi compila il CV?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324

    salvataggio del file da remoto

    Originariamente inviato da Andrea1979
    Non si capisce molto: dove deve essere salvato il file? Sul server dove è generato oppure sul computer/dispositivo di chi compila il CV?
    Hai ragione.... Comunque si esatto vorrei che dopo che l'utente abbia compilato il suo curriculum vitae possa salvarsi il file.pdf sul suo proprio pc decidendo lui quale destinazione scegliere....

    Solo che sinceramente non saprei nemmeno che cosa cercare su internet... sono davvero spaesato....

    Grazie anticipatamente per l'aiuto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ulteriore domanda: al server remoto ci si connette tramite browser (niente più, niente meno che compilare un form online) oppure hai scritto un tuo proprio sistema client-server?
    Nel primo caso, hai poco controllo sulla cartella di default (anzi nessun controllo), ma soluzione rapidissima (si tratta di mandare in download al client il file appena generato: cerca force download in internet, o anche forzare download qui sul forum per vedere una milionata di script su come si fa), e fa semplicemente comparire la finestrella di download del browser in uso.

    Nel secondo caso, avendo scritto tu il client, potrai optare per soluzioni più "invasive" (decidi tu dove salvare, purché cartelle ammissibili dalle impostazioni di sicurezza) oppure fai scegliere all'utente: in questo ultimo sottocaso il componente da andare a spulciare è JFileChooser
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324

    salvataggio del file da remoto

    no semplicemente ci sono piu form da compilare....

    Comunque grazie per la spiegazione.... Solo per riepilogare, ci sono delle classi java che permettono di gestire la forzatura del download?

    Grazie ancora...

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    in ambito server, ti basta mandare il giusto header: cerca e ti sarà dato. Trovi milioni di script già pronti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    grazie andrea per l'aiuto...

    Ho cercato e trovato degli esempi, come hai detto te, solo che quando apro il file.pdf mi presenta un errore di decodifica del file salvato e non capisco come mai....

    Vi posto il codice che ho scritto per chiarezza:

    codice:
    File creazioneFilePdf = creazionePdf.creazionePdf(curriculumVitae); 			response.setContentType("application/octet-stream.pdf");		    response.setHeader("Content-Disposition","attachment;filename=\""+creazioneFilePdf+"\"");
    Non riesco a capire dove sbaglio, o meglio non capisco se ho dimenticato di scrivere qualcosa...

    Grazie anticipatamente...

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E che roba è questa

    codice:
    response.setContentType("application/octet-stream.pdf");
    ?

    L'header corretto è questo:

    codice:
    response.setContentType("application/octet-stream; name=\"" + nomeFile + "\"");
    response.setCharacterEncoding("UTF-8");
    response.addHeader("content-disposition", "attachment; filename=\"" + nomeFile + "\"");
    Dove NomeFile è una stringa di testo con il nome del file da inviare (ovvero, il nome che vuoi che venga visto dall'utente al momento del download).

    Poi manca tutta la parte di invio del file... devi aprire il file PDF in lettura (FileInputStream), leggerlo byte per byte (a blocchi, possibilmente, di N byte) e spedirlo al client.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    Originariamente inviato da LeleFT
    E che roba è questa

    codice:
    response.setContentType("application/octet-stream.pdf");
    ?

    L'header corretto è questo:

    codice:
    response.setContentType("application/octet-stream; name=\"" + nomeFile + "\"");
    response.setCharacterEncoding("UTF-8");
    response.addHeader("content-disposition", "attachment; filename=\"" + nomeFile + "\"");
    Dove NomeFile è una stringa di testo con il nome del file da inviare (ovvero, il nome che vuoi che venga visto dall'utente al momento del download).

    Poi manca tutta la parte di invio del file... devi aprire il file PDF in lettura (FileInputStream), leggerlo byte per byte (a blocchi, possibilmente, di N byte) e spedirlo al client.


    Ciao.


    Solo ulteriore domanda ma nel:

    - response.setContentType("application/octet-stream; name=\"" + nomeFile + "\"");

    deve avere il nome file con il tipo di estensione?

    Grazie mille per la dritta... Adesso provo a fare il tutto.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324
    grazie LeleLn la tua dritta sono riuscito a effettuare l'operazione che volevo, cioè permettere il salvataggio del file.pdf sulla macchina dell'utente.

    qui trovate il codice corretto e testato:

    codice:
    response.setContentType("application/octet-stream; name=\"" + nomefile.estensione + "\""); 			
    response.setCharacterEncoding("UTF-8"); 			
    response.addHeader("content-disposition", "attachment; filename=\"" + nomefile.estensione + "\""); 			 			
    
    FileInputStream fileInputStream = new FileInputStream(creazioneFilePdf); 			ServletOutputStream out = response.getOutputStream(); 			
    int i; 			
    while ((i=fileInputStream.read()) != -1) 			
    { 				
             out.write(i);  		
    }
    
    fileInputStream.close(); 			
    out.close();

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.