2011-09-14 22 views
9

En el archivo de Apache commons, la carga de los archivos cargados está disponible como objetos FileItem.
Si obtengo el nombre de dicho elemento de archivo utilizando fileitem.getName(), devuelve la ruta completa (por ejemplo, C:\Test\test.txt).

¿Hay alguna manera de obtener solo el nombre del archivo?
Lo que realmente necesito es para guardar el archivo subido como archivo temporal utilizando File.createTempFile()
pero el nombre y la extensión del archivo temporal debe ser el mismo que el archivo subido en lugar de un nombre al azar (como temp.tmp)Extraer solo el nombre de archivo Del nombre de FileItem

Respuesta

22

Pruebe lo the docs say

¿Por qué FileItem.getName() Devuelve la ruta completa, y no sólo el nombre de archivo ?

Internet Explorer proporciona la ruta completa al archivo cargado y no solo el nombre del archivo base. Dado que FileUpload proporciona exactamente lo que fue proporcionado por el cliente (navegador), es posible que desee eliminar esta ruta información en su aplicación. Puede hacerlo utilizando el siguiente método de Commons IO (que ya tiene, ya que es utilizado por FileUpload).

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

No me di cuenta it.thanks un montón @JoseK – Dinushan

+0

es esto supone que debe sustituir a nombre de archivo con nomArchivo? –

Cuestiones relacionadas