È possibile intercettare il file da un < input type = file > in javascript?
-
03-07-2019 - |
Domanda
È possibile leggere il contenuto di un file che è stato selezionato con un controllo di input del file? Vorrei fare qualcosa del tipo:
<input type="file" id="fileInput" onblur="readFile(this)"/>
<script language="javascript">
function readFile(file) {
document.write(file);
}
</script>
È possibile qualcosa del genere? o il caricamento del file invia semplicemente il file al server.
Soluzione
È possibile in Firefox , ma non è standardizzato, quindi non è possibile portabilmente tra i browser (ad esempio, WebKit non lo supporta). Probabilmente la soluzione migliore sarebbe quella di caricare il file sul server, quindi scaricarlo di nuovo utilizzando un XMLHTTPRequest
.
Altri suggerimenti
È possibile se si utilizza HTA (applicazione terminale ipertestuale, consultare http://msdn.microsoft.com/en-us/library/ms536496 (VS.85) aspx ). Se lo fai, sei legato a Internet Explorer, ma sei libero di accedere ai file, al registro, ecc. Ci sono (ovviamente) problemi di sicurezza.
Probabilmente non è possibile in molti browser. Cosa accadrebbe se dessimo a javascript arbitrario la possibilità di leggere un file arbitrario nel filesystem, usando le credenziali dell'utente? COSE BRUTTE. JavaScript dannoso potrebbe facilmente prendere i dati dei file e pubblicarli di nuovo sul server, nascondendo silenziosamente tutti i tuoi file in background.
Dubito che ciò sia possibile e lo sconsiglio vivamente.
Se deve essere esclusivamente lato client, perché stai usando un'applicazione web? Gli unici file che è possibile visualizzare sono di testo semplice, per i quali esistono molti modi più semplici di visualizzare il contenuto.