Contoh dalam artikel ini menerangkan pemalam jQuery yang mengehadkan saiz dan format fail yang dimuat naik. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Apabila memuat naik fail pada klien, biasanya perlu mengehadkan saiz dan format fail Kaedah yang paling biasa ialah menggunakan pemalam tertentu yang mempunyai antara muka yang cantik dan fungsi yang berkuasa. tetapi satu-satunya kelemahan ialah: kadangkala anda menghadapi masalah keserasian Penyemak Imbas. Dalam artikel ini, kami akan menulis pemalam jQuery "asal" yang boleh mengehadkan saiz dan format fail yang dimuat naik.
Mula-mula, tulis pemalam bernama checkFileTypeAndSize.js. Hadkan format fail dengan menilai sama ada nama akhiran fail semasa disertakan dalam tatasusunan nama akhiran yang dibenarkan oleh pratetap dengan menilai sama ada saiz fail semasa di bawah IE dan pelayar lain adalah lebih besar daripada saiz fail maksimum yang dibenarkan oleh pratetap, untuk mengehadkan saiz fail dan menyediakan fungsi panggil balik untuk ralat format, melebihi saiz had dan syarat mesyuarat.
(fungsi ($) {
$.fn.checkFileTypeAndSize = fungsi (pilihan) {
//Tetapan lalai
var lalai = {
dibenarkan Sambungan: [],
Saiz maksimum: 1024, //Unit ialah KB, saiz fail maksimum lalai ialah 1MB=1024KB
Kejayaan: fungsi () { },
extensionerror: function () { },
sizeerror: fungsi () { }
};
//Gabungkan tetapan
pilihan = $.lanjutkan(lalai, pilihan);
//Unsur lintasan
kembalikan ini.setiap(fungsi () {
$(this).on('change', function () {
//Dapatkan laluan fail
var filePath = $(this).val();
//Laluan fail dalam huruf kecil
var fileLowerPath = filePath.toLowerCase();
//Dapatkan nama akhiran fail
sambungan var = fileLowerPath.substring(fileLowerPath.lastIndexOf('.') 1);
//Tentukan sama ada nama akhiran disertakan dalam tatasusunan nama akhiran pratetap dan dibenarkan
Jika ($.inArray(extension, options.allowedExtensions) == -1) {
options.extensionerror();
$(ini).fokus();
} lain {
cuba {
saiz var = 0;
Jika ($.browser.msie) {//iaitu versi lama penyemak imbas
var fileMgr = new ActiveXObject("Scripting.FileSystemObject");
var fileObj = fileMr.
saiz = fileObj.size; //bait
saiz = saiz / 1024;//kb
//saiz = saiz / 1024;//mb
} lain {//Pelayar lain
saiz = $(this)[0].fail[0].saiz;//bait
saiz = saiz / 1024;//kb
//saiz = saiz / 1024;//mb
Jika (saiz > pilihan.maxSize) {
options.sizeerror();
} lain {
options.success();
} tangkap (e) {
alert("Ralat: "e);
}
}
});
});
};
})(jQuery);
Memanggil pelanggan menjadi sangat mudah.
@skrip bahagian