Anda sebenarnya tidak memiliki akses ke sistem file (misalnya membaca dan menulis file lokal), namun, karena spesifikasi File HTML5 Api, ada beberapa properti file yang Anda memiliki akses, dan ukuran file adalah salah satunya.
Untuk HTML di bawah ini
<input type="file" id="myFile" />
coba yang berikut ini:
//binds to onchange event of your input field
$('#myFile').bind('change', function() {
//this.files[0].size gets the size of your file.
alert(this.files[0].size);
});
Karena ini adalah bagian dari spesifikasi HTML5, itu hanya akan berfungsi untuk browser modern (v10 diperlukan untuk IE) dan saya menambahkan di sini lebih detail dan tautan tentang informasi file lain yang harus Anda ketahui: http://felipe.sabino.me/javascript / 2012/01/30 / javascipt-checking-the-file-size /
Dukungan browser lama
Ketahuilah bahwa browser lama akan mengembalikan null
nilai untuk this.files
panggilan sebelumnya , jadi mengakses this.files[0]
akan menimbulkan pengecualian dan Anda harus memeriksa dukungan File API sebelum menggunakannya
jQuery
file javascript tidak ditambahkan (atau tidak dimuat dengan benar). Apakah Anda menambahkannya dihead
halaman Anda?Jika Anda ingin menggunakan jQuery,
validate
Anda bisa dengan membuat metode ini:Anda akan menggunakannya:
sumber
accept
aturan, di mana Anda seharusnya menggunakanextension
aturan. ~ Theaccept
Aturan ini hanya untuk jenis MIME. Theextension
Aturan ini untuk ekstensi file. Anda juga perlu menyertakan dalamadditional-methods.js
berkas untuk aturan ini.$('#formid').validate({ rules: { inputimage: { required: true, extension: "png|jpe?g|gif", filesize: 1048576 }}, messages: { inputimage: "File must be JPG, GIF or PNG, less than 1MB" } });
Kode ini:
Mengembalikan ukuran file untuk input formulir.
Pada FF 3.6 dan yang lebih baru, kode ini harus:
sumber
Saya memposting solusi saya juga, digunakan untuk
FileUpload
kontrol ASP.NET . Mungkin seseorang akan merasakan manfaatnya.sumber
f = this.files[0]
atau ini akan gagal pada browser lama. misif (f && (f.size > 8388608 || f.fileSize > 8388608))
Gunakan di bawah untuk memeriksa ukuran file dan hapus jika lebih besar,
sumber
Anda dapat melakukan pemeriksaan jenis ini dengan Flash atau Silverlight tetapi tidak dengan Javascript. Kotak pasir javascript tidak memungkinkan akses ke sistem file. Pemeriksaan ukuran perlu dilakukan di sisi server setelah diunggah.
Jika Anda ingin pergi rute Silverlight / Flash, Anda dapat memeriksa bahwa jika mereka tidak diinstal secara default ke penangan upload file biasa yang menggunakan kontrol normal. Dengan cara ini, jika Silverlight / Flash diinstal, pengalaman mereka akan sedikit lebih kaya.
sumber
Saya menemukan ini sebagai yang termudah jika Anda tidak berencana mengirimkan formulir melalui metode ajax / html5 standar, tapi tentu saja itu berfungsi dengan apa pun.
CATATAN:
Ini digunakan untuk bekerja, tetapi tidak di chrome lagi, saya baru saja menguji kode di atas dan itu berfungsi baik di ff dan chrome (terbaru). ["0"] yang kedua sekarang adalah anak pertama.
sumber
Silakan coba ini:
sumber