2011-09-14 11 views
9

Nel file di risorse comuni di apache il caricamento dei file caricati è disponibile come oggetti FileItem.
Se viene visualizzato il nome di tale elemento file utilizzando fileitem.getName(), restituisce il percorso completo (ad esempio: C:\Test\test.txt).

C'è un modo per ottenere solo il nome del file.
Quello che ho veramente bisogno è quello di salvare il file caricato come file temporaneo utilizzando File.createTempFile()
ma il nome e l'estensione del file temporaneo dovrebbe essere lo stesso del file caricato, piuttosto che un nome casuale (come temp.tmp)Estrai solo il nome del file da FileItem's name

risposta

22

provare quello che the docs say

Perché FileItem.getName() Restituisce l'intero percorso, e non solo il nome del file ?

Internet Explorer fornisce l'intero percorso del file caricato e non solo il nome del file di base. Poiché FileUpload fornisce esattamente ciò che è stato fornito dal client (browser), è possibile rimuovere questo percorso informazioni nella propria applicazione. Puoi farlo usando il seguente metodo da Commons IO (che hai già, dal momento che è utilizzato da File Systemload ).

String fileName = item.getName(); 
if (fileName != null) { 
    fileName = FilenameUtils.getName(fileName); 
} 
+0

Non ho notato un it.thanks @JoseK molto – Dinushan

+0

è questo supponiamo di sostituire il nome del file con nomeFile? –