Użyłem tego:
$('input[type=file]').val()
aby uzyskać wybraną nazwę pliku, ale zwróciła pełną ścieżkę, na przykład „C: \ fakepath \ filename.doc”. Część „fakepath” faktycznie tam była - nie jestem pewien, czy powinna, ale po raz pierwszy pracuję z nazwami przesyłanych plików.
Jak mogę po prostu uzyskać nazwę pliku (nazwa_pliku.doc)?
javascript
jquery
get
filenames
marky
źródło
źródło
C:\fakepath\
więc złośliwe witryny nie mogą używać javascript do zbierania informacji o strukturze katalogów Twojego komputera.Odpowiedzi:
lub możesz po prostu zrobić (ponieważ jest to zawsze
C:\fakepath
dodawane ze względów bezpieczeństwa):źródło
Fakepath
przez duże F?Wystarczy wykonać poniższy kod. Pierwsze [0] to dostęp do elementu HTML, a drugie [0] to dostęp do pierwszego pliku załadowanego pliku (włączyłem walidację w przypadku, gdy nie ma pliku):
źródło
Chrome powraca
C:\fakepath\...
ze względów bezpieczeństwa - witryna nie powinna mieć możliwości uzyskania informacji o Twoim komputerze, takich jak ścieżka do pliku na Twoim komputerze.Aby uzyskać tylko część ciągu zawierającą nazwę pliku, możesz użyć
split()
...jsFiddle .
... lub wyrażenie regularne ...
jsFiddle .
... lub
lastIndexOf()
...jsFiddle .
źródło
Uzyskaj pracę ze wszystkimi systemami operacyjnymi
Przykład
Obie wracają
źródło
var filename = $('input[type=file]').val().replace(/.*(\/|\\)/, '');
używa jQuery.Oto jak to robię, działa całkiem nieźle.
W swoim HTML wykonaj:
Następnie w pliku js utwórz prostą funkcję:
Jeśli robisz wiele plików, powinieneś być w stanie uzyskać listę, przechodząc przez to:
źródło
może jakiś dodatek, aby uniknąć fakepath:
źródło
A może coś takiego?
źródło
Czy to musi być jQuery? A może możesz po prostu użyć natywnego języka JavaScript,
yourpath.split("\\")
aby podzielić ciąg na tablicę?źródło
Pobierz pierwszy plik z kontrolki, a następnie uzyskaj nazwę pliku, zignoruje ścieżkę do pliku w przeglądarce Chrome, a także dokona korekty ścieżki dla przeglądarek IE. Podczas zapisywania pliku musisz użyć
System.io.Path.GetFileName
metody, aby uzyskać nazwę pliku tylko dla przeglądarek IEźródło
źródło
źródło
Ta alternatywa wydaje się najbardziej odpowiednia.
źródło
Tutaj możesz wywołać w ten sposób Niech to jest moja kontrolka pliku wejściowego
Oto moje Jquery, które są wywoływane po wybraniu pliku
źródło
Możemy go również usunąć za pomocą
match
źródło