Dengan HTML, bagaimana cara membatasi jenis file apa yang dapat diunggah?
Untuk memudahkan pengalaman pengguna, saya ingin membatasi unggahan file menjadi hanya gambar (jpeg, gif, png).
<form method="post" action="..." enctype="multipart/form-data">
<label for="image">Photo</label>
<input name="image" type="file" />
</form>
html
image
upload
file-upload
JacobT
sumber
sumber
Jawaban:
HTML5 mengatakan
<input type="file" accept="image/*">
. Tentu saja, jangan pernah percaya validasi sisi klien: Selalu periksa lagi di sisi server ...sumber
Input File HTML5 memiliki atribut terima dan juga beberapa atribut. Dengan menggunakan beberapa atribut, Anda dapat mengupload banyak gambar dalam satu waktu.
Anda juga dapat membatasi beberapa jenis pantomim.
dan cara lain untuk memeriksa jenis mime menggunakan objek file.
objek file memberi Anda nama, ukuran dan jenis.
Anda juga dapat membatasi pengguna untuk beberapa jenis file untuk diunggah dengan kode di atas.
sumber
image/*|audio/*|video/*
tidak bekerja untuk saya, itu harus dipisahkan koma tampaknya:image/*,video/mp4,.txt
Diedit
Jika semuanya SEHARUSNYA, Anda dapat melakukan ini melalui atribut "Terima".
http://www.webmasterworld.com/forum21/6310.htm
Namun, browser cukup banyak mengabaikan ini, jadi ini tidak relevan. Jawaban singkatnya adalah, saya rasa tidak ada cara untuk melakukannya di HTML. Anda harus memeriksanya di sisi server.
Posting lama berikut memiliki beberapa informasi yang dapat membantu Anda dengan alternatif.
Input file atribut 'accept' - apakah berguna?
sumber
Berikut HTML untuk upload gambar. Secara default akan menampilkan file gambar hanya di jendela browsing karena sudah kita taruh
accept="image/*"
. Tapi kita masih bisa mengubahnya dari dropdown dan itu akan menampilkan semua file. Jadi bagian Javascript memvalidasi apakah file yang dipilih adalah gambar yang sebenarnya atau tidak.Di sini, pada acara perubahan, pertama-tama kami memeriksa ukuran gambar. Dan pada
if
kondisi kedua kita cek apakah itu file gambar atau bukan.this.files[0].type.indexOf("image")
akan menjadi-1
jika itu bukan file gambar.sumber
Sekarang di bagian html
kode ini akan memeriksa apakah file yang diunggah adalah file jpg atau bukan dan membatasi unggahan jenis lain
sumber
Anda hanya dapat melakukan ini dengan aman di sisi server. Menggunakan atribut "accept" itu bagus, tetapi juga harus divalidasi di sisi server agar pengguna tidak dapat beralih ke skrip Anda tanpa batasan itu.
Saya menyarankan Anda: membuang file non-gambar, memperingatkan pengguna, dan menampilkan kembali formulir.
sumber
Pada akhirnya, filter yang ditampilkan di jendela Jelajah diatur oleh browser. Anda dapat menentukan semua filter yang Anda inginkan di atribut Terima, tetapi Anda tidak memiliki jaminan bahwa browser pengguna Anda akan mematuhinya.
Taruhan terbaik Anda adalah melakukan beberapa jenis pemfilteran di bagian belakang server.
sumber
Lihat proyek bernama Uploadify. http://www.uploadify.com/
Ini adalah pengunggah file berbasis Flash + jQuery. Ini menggunakan dialog pemilihan file Flash, yang memberi Anda kemampuan untuk memfilter jenis file, memilih beberapa file sekaligus, dll.
sumber