F.A.Q. numero 513. Come posso l'estensione di un file che l'utente ha inserito in un campo FILE per l'upload? Nessun metodo particolare, la proprietà value di un campo FILE è a sola lettura (per motivi di sicurezza), ma puo' essere acceduta come se fosse un qualsiasi campo testo, quindi con sintassi tipo: document.nomemodulo.nomecampo.value
Dopodiche basta andare a prendere i caratteri della stringa così letta dopo l'ultimo punto (se ce n'è più di uno) usando lastIndexOf(str) per cercare str a partire dalla fine della stringa.
Nell'esempio che segue in "nomefile" viene prima memorizzato l'intero value del campo, poi nella stessa variabile lascio la sola estensione (questo doppio passaggio è solo per una questione di leggibilità del codice in questa pagina).
L'estensione letta resta disponibile nella variabile "nomefile", nell'esempio la stampo anche in un campo testo a scopo dimostrativo: <html>
<head>
<title>Trova estensione nel valore di un campo FILE</title>
<script type="text/javascript">
<!--
function TrovaEstensione()
{
var nomefile = document.modulo.filedacaricare.value;
nomefile = nomefile.substr(nomefile.lastIndexOf(".")+1);
document.modulo.estensione.value=nomefile;
}
//-->
</script>
</head>
<body>
<form name='modulo'>
<input type='file' name='filedacaricare'> <br>
<input type='text' name='estensione'> <br>
<input type='button' value='Clicca' onclick='TrovaEstensione()'>
</form>
</body>
</html>
Segue l'esempio funzionante:
|