Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33

    Lettura File

    Salve a tutti,
    scusate la banalità della mia richiesta:

    qualcuno sa come fare per uploadare un file dalla mia macchina al server Tomcat (nella root del progetto per esempio)attraverso un form html con il field di tipo file??

    Grazie mille

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    "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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Grazie per la tempestiva risposta...ho implementato ciò che è postato nel primo link ossia utilizzando la libreria oreilly servlet

    però credo di dover utilizzare come parametro della form enctype="multipart/form-data"

    il mio problema adesso è leggere tutti gli altri valori delle <input type="text"...

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da attila79
    però credo di dover utilizzare come parametro della form enctype="multipart/form-data"
    Sì, è un requisito necessario per il trasferimento dei file.

    il mio problema adesso è leggere tutti gli altri valori delle <input type="text"...
    Semplicemente li recuperi dalla HttpServletRequest originale, esattamente come hai sempre fatto.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Stranamente mi estituisce null nella servlet, ti posto il codice:

    JSP
    <form name="testUpload" action="testUpload" enctype="multipart/form-data" method="post">

    <input type="text" id="textxls" name="textxls" />
    <input type="file" name="filexls" />
    <input type="submit" id="submit" name="submit" />
    </form>

    Porzione Servlet

    MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000);
    File f = req.getFile("filexls");
    // Ci lavoro con questo file appena arrivato
    out.println("Campo testo " + request.getParameter("textxls"));

    nella pagina esce ---->>>>> Campo testo null

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sinceramente non ho mai provato a recuperarlo dopo aver costruito la MultipartRequest, quindi non so se ci possono essere problemi. Nello specifico, non so se il parsing effettuato dalla MultipartRequest vada a "rovinare" tutti gli altri parametri.

    Prova, semplicemente, a farlo prima (sono certo del funzionamento di questo codice):

    codice:
    // Prima recupero tutti i parametri dalla normale request
    String campoTesto = request.getParameter("textxls");
    
    // Poi, creo la MultipartRequest
    MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000);
    File f = req.getFile("filexls");
    // Ci lavoro con questo file appena arrivato
    out.println("Campo testo " + campoTesto);

    PS: usa i tag CODE per il posting del codice (vedi regolamento interno)


    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Sarà che mi sfugge qualcosa ma continua a dare null il recupero del valore del campo testo:


    codice:
            
    
            try {
                String xx = request.getParameter("textxls");
                // Creo una MultipartRequest che salverà il file nella root del progetto e che consentirà
                // una dimensione massima di 5000000 byte per la request (5 MB)
                out.println("Campo testo " + xx);
    
                MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000);
                File f = req.getFile("filexls");
                // Ci lavoro con questo file appena arrivato
    
                out.println("
    ");
                out.println("IL PATH DEL FILE CHE UPLOADATO " + f.getAbsolutePath());
    
            } finally { 
                out.close();
            }

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    è normale che non riesci più a recuperare i dati dalla request perche vengono inviati in un altro formato, forse lele non ne è a conoscenza. Per recuperare i valori devi usare sempre l'oggetto MultipartRequest e fare una cosa del genere:

    codice:
     MultipartParser mp = nMultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000)
    		  Part part;
    		  while ((part = mp.readNextPart()) != null) {
    			String name = part.getName();
                            // è un parametro
    			if (part.isParam()) {
    	
    			  ParamPart paramPart = (ParamPart) part;
                              //recupero il valore
    			  String value = paramPart.getStringValue();
    			 
    			}
                           //è un file
    			else if (part.isFile()) {
    ecc...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Scusa Vindav non riesco ad interpretare bene il codice che hai postato, in particolare:

    codice:
    MultipartParser mp = MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000)
    mi da l'errore del ; forse è un errore di copia e incolla.....

    poi il nome del campo dal quale devo recuperare il valore dove lo devo mettere?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    si scusami errore mio , rileggendo il mio post effettivamente non è che si capisce un gran che, ho fatto parecchio confusione. Il codice che ho postato fa utilizzo della libreria com.oreilly.servlet.multipart, codice che avevo scritto tempo fa ed ero convito che avessi utilizzato le classi standard. Dovresti trovare tutte la documentazione sul sito http://www.servlets.com, appena posso ti posto un esempio piu completo.

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.