Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77

    come recuperare le informazioni mandate ad una servlet riguardanti un file uploadato

    Ho creato una server che riceve i dati da un form, tra cui c'è anche un file inviato. il tutto funziona e la servlet riceve tutte le infomazioni e anche il file viene inviato.
    Uso l'oggetto multipartRequest perchè l'HttpServletResponce va bene solo per i form che non inviano anche file.
    Ora mi serve recuperare le informazioni sul nome del file che ho inviato, perchè una volta inviato lo devo rinominare e spostare in un altra cartella. QUINDI COME FACCIO A RECUPERARE IL NOME DI UN FILE CHE HO INVIATO AD UNA SERVLET NEL CODICE DELLA SERVLET? Esiste qualche metodo particoloare di multipartRequest che me lo restituisce???

  2. #2
    Quando utilizzi una libreria, la prima cosa che dovresti fare è leggerti i javadoc, cioè la documentazione delle classi, in html, che ti dice quali sono i metodi che hai a disposizione. In questo caso, il javadoc di MultipartRequest ti dice che ci sono, tra gli altri, questi metodi:

    codice:
    java.util.Enumeration getFileNames() 
              Returns the names of all the uploaded files as an Enumeration of Strings.
    
    java.lang.String getFilesystemName(java.lang.String name) 
              Returns the filesystem name of the specified file, or null if the file was not included
              in the upload.
    
    java.lang.String getOriginalFileName(java.lang.String name) 
              Returns the original filesystem name of the specified file (before any renaming policy
              was applied), or null if the file was not included in the upload.
    Credo che siano sufficienti per quello che devi fare.

    Ciao,

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    Avevo già visto quei metodi ma non mi servono al mio scopo, almeno penso:...

    TI RICORDO CHE A ME SERVE IL NOME DEL FILE QUANDO STA SUL SERVER, IO VEDO DOVE VIENE SPEDITO PERCHè GLIELO INDICO IO NEL COSTRUTTORE DI multipartRequest, ma mi occorre recuperare questo nella servlet...

    CON IL PRIMO METODO .getFileNames
    ti riporto il codice nella servlet:
    codice:
    //OTTENGO L'ENUMERATION DI STRING DEI FILE UPLOADATI
    		Enumeration file_list = multipartRequest.getFileNames();
    		String foto = new String();
    		while(file_list.hasMoreElements()){
    			foto = (String)file_list.nextElement();	
    		}
    		//VISUALIZZO SUL BROWSER IL VALORE DI FOTO
    		buf.append(foto);
    SUL BROWSER SI VISUALIZZA:
    file

    QUESTO è IL NOME DEL CAMPO DEL FORM;
    Foto: <INPUT TYPE="file" name="file" id="file" />


    MA QUESTO LO SAPEVO GIà DA ME IO VOGLIO IL CONTENUTO DI TALE CAMPO...


    PER QUANTO RIGUARDA GLI ALTRI 2 METODI MI SEMBRA CHE DEVI PASSARGLI IL NOME DEL FILE COME STRINGA, MA LA SERVLET è PROPRIO QUESTO NOME CHE DEVE RECUPERARE CHE è IL VALORE INSERITO NEL CAMPO DEL FORM CHE SI CHIAMA COME ATTRIBUTO NAME="file". COMUNQUE ORA PROVO ANCHE A PASTICCIARE CON GLI ALTRI DUE E TI FACCIO SAPERE.

    ALTRIMENTI COME ALTERNATIVA PENSAVO DI OBBLIGARE A SPEDIRE IL FILE CON UN NOME FISSO DI MODO TALE CHE COSì POSSO RECUPERARLO, MA IN TAL MODO NON POSSO INVIARE TUTTE LE FOTO NELLA STESSA CARTELLA, MA DEVO CREARE TANTE SOTTOCARTELLE UNA PER OGNI FOTO. E DIVENTA UN Pò BRUTTA COME SOLUZIONE..

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    CON IL SECONDO METODO:
    java.lang.String getFilesystemName(java.lang.String name)
    Returns the filesystem name of the specified file, or null if the file was not included
    in the upload.

    RIPORTO IL CODICE CHE HO INSERITO NELLA SERVLET:
    codice:
    //OTTENGO IL FILESYSTEM NAME DEL FILE CHE HO MANDATO:IL FILE CHE HO MADATO SI CHIAMA a.jpg
    		foto = multipartRequest.getFilesystemName("a.jpg");
    
    		//VISUALIZZO SUL BROWSER IL VALORE DI FOTO
    		buf.append(foto);
    Sul browser mi visualizza
    null
    ho provato anche a mettere come argomento passato a tale metodo il nome del campo di invio file del form
    Foto: <INPUT TYPE="file" name="file" id="file" />



    cioè la parola "file" ma da sempre null

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    77
    PARDON...
    CON ILSECONDO METODO FUNZIONA BASTA PASSARE IL NOME DEL CAMPO HTML CIOè IL VALORE DEL SUO ATTRIBUTO name....IO DISTRATTAMENTE AVEVO SCRITTO foto AL POSTO di file che è appunto il valore dell'attributo name nel mio html.....
    SCUSATE LA DISCUSSIONE PUò ESSERE FINITA
    GRAZIE

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.