[Javascript] Utilizzare jQuery per ottenere il nome file selezionato per l'input del file senza il percorso


Answers

Hai solo bisogno di fare il codice qui sotto. Il primo [0] è per accedere all'elemento HTML e il secondo [0] è per accedere al primo file del caricamento del file (ho incluso una convalida nel caso in cui non ci sia alcun file):

    var filename = $('input[type=file]')[0].files.length ? ('input[type=file]')[0].files[0].name : "";
Question

Ho usato questo:

$('input[type=file]').val()

per ottenere il nome del file selezionato, ma ha restituito il percorso completo, come in "C: \ fakepath \ filename.doc". La parte "fakepath" era effettivamente lì - non so se dovrebbe essere, ma questa è la mia prima volta che lavoro con il nome del file di upload di file.

Come posso ottenere il nome del file (filename.doc)?




Deve essere jquery? O puoi semplicemente usare il tuo percorso JavaScript yourpath.split("\\") nativo di JavaScript per dividere la stringa in un array?




forse qualche aggiunta per evitare falsi percorsi:

var fileName = $('input[type=file]').val();
var clean=fileName.split('\\').pop(); // clean from C:\fakepath OR C:\fake_path 
alert('clean file name : '+ fileName);



var filename=location.href.substr(location.href.lastIndexOf("/")+1);
alert(filename);



Ottieni il percorso di lavoro con tutto il sistema operativo

var filename = $('input[type=file]').val().replace(/.*(\/|\\)/, '');

Esempio

C:\fakepath\filename.doc 
/var/fakepath/filename.doc

Entrambi ritornano

filename.doc
filename.doc





Links