Saya menggunakan ini:
$('input[type=file]').val()
untuk mendapatkan nama file yang dipilih, tetapi mengembalikan path lengkap, seperti pada "C: \ fakepath \ filename.doc". Bagian "fakepath" sebenarnya ada di sana - tidak yakin apakah itu seharusnya, tetapi ini adalah pertama kalinya saya bekerja dengan nama file unggahan file.
Bagaimana saya bisa mendapatkan nama file (filename.doc)?
javascript
jquery
get
filenames
marky
sumber
sumber
C:\fakepath\
situs jahat sehingga tidak dapat menggunakan javascript untuk mengumpulkan informasi tentang struktur direktori komputer Anda.Jawaban:
atau Anda bisa melakukannya (karena selalu
C:\fakepath
ditambahkan untuk alasan keamanan):sumber
Fakepath
dengan huruf kapital F?Anda hanya perlu melakukan kode di bawah ini. Yang pertama [0] adalah untuk mengakses elemen HTML dan yang kedua [0] adalah untuk mengakses file pertama dari unggahan file (saya menyertakan validasi kalau-kalau tidak ada file):
sumber
Chrome kembali
C:\fakepath\...
karena alasan keamanan - situs web seharusnya tidak dapat memperoleh informasi tentang komputer Anda seperti jalur ke file di komputer Anda.Untuk mendapatkan hanya bagian nama file dari sebuah string, Anda dapat menggunakan
split()
...jsFiddle .
... atau ekspresi reguler ...
jsFiddle .
... atau
lastIndexOf()
...jsFiddle .
sumber
Dapatkan path work dengan semua OS
Contoh
Keduanya kembali
sumber
var filename = $('input[type=file]').val().replace(/.*(\/|\\)/, '');
menggunakan jQuery.Inilah cara saya melakukannya, itu bekerja dengan cukup baik.
Dalam HTML Anda lakukan:
Kemudian di file js Anda buat fungsi sederhana:
Jika Anda melakukan banyak file, Anda juga harus bisa mendapatkan daftar dengan mengulangi ini:
sumber
mungkin beberapa tambahan untuk menghindari fakepath:
sumber
Bagaimana dengan sesuatu yang seperti ini?
sumber
Apakah itu harus jquery? Atau bisakah Anda menggunakan asli JavaScript
yourpath.split("\\")
untuk membagi string ke array?sumber
Dapatkan file pertama dari kontrol dan kemudian dapatkan nama file, itu akan mengabaikan path file di Chrome, dan juga akan membuat koreksi path untuk browser IE. Saat menyimpan file, Anda harus menggunakan
System.io.Path.GetFileName
metode untuk mendapatkan nama file hanya untuk browser IEsumber
sumber
sumber
Alternatif ini sepertinya yang paling tepat.
sumber
Di sini Anda dapat memanggil seperti ini. Biarkan ini adalah kontrol File Input saya
Sekarang di sini adalah Jquery saya yang dipanggil setelah Anda memilih file
sumber
Kami juga dapat menghapusnya menggunakan
match
sumber