Fungsi muat naik fail menjadi semakin biasa sekarang Semua tapak rangkaian sosial dan laman media, seperti Video Youku, Weibo, dll., menyediakan fungsi seperti memuat naik gambar dan video. Tetapi pada masa lalu, pengaturcara WEB tahu bahawa memuat naik fail menggunakan borang HTML adalah sangat menyusahkan Terutama jika anda ingin mengetahui beberapa atribut fail yang dimuat naik oleh pengguna, anda perlu menunggu sehingga muat naik selesai.
Memuat naik perkara yang tidak diketahui ke pelayan boleh menyebabkan masalah keselamatan, atau mungkin terlalu besar, melebihi saiz yang dibenarkan dan membazirkan ruang. Sekarang, teknologi WEB semakin bertambah baik, dan HTML5 telah membawa banyak perkara yang baik. API FileReader ini membolehkan anda mendapatkan beberapa sifat asas fail yang dimuat naik sebelum pengguna memuat naiknya.
Kod HTML
API FileReader ini berfungsi sama seperti API Fail dan memerlukan penggunaan elemen input[type="file"]:
<-- 一个能上传多媒体文件的表单 --> <input type="file" id="upload-file" multiple /> <-- 显示图片的地方 --> <div id="destination"></div>
Dalam artikel File API, terdapat maklumat terperinci tentang fail yang boleh dibaca, seperti alamat, kelantangan, saiz, jenis fail, dsb.
JavaScript
Dalam contoh ini, kami menggunakan medan borang input untuk memuat naik gambar Apabila pengguna memilih gambar pada komputernya, gambar itu akan dipaparkan pada halaman:
document.getElementById('upload-file').addEventListener('change', function() { var file; var destination = document.getElementById('destination'); destination.innerHTML = ''; // 循环用户多选的文件 for(var x = 0, xlen = this.files.length; x < xlen; x++) { file = this.files[x]; if(file.type.indexOf('image') != -1) { // 非常简单的交验 var reader = new FileReader(); reader.onload = function(e) { var img = new Image(); img.src = e.target.result; // 显示图片的地方 destination.appendChild(img); }; reader.readAsDataURL(file); } } });
Dalam contoh ini, kami menggunakan kaedah readAsDataURL dalam FileReader untuk menukar kandungan imej kepada rentetan berkod base64, dan kemudian memaparkannya menggunakan URI data imej. Kaedah membaca FileReader lain termasuk readAsText, readAsArrayBuffer dan readAsBinaryString, dsb.
Dengan API FileReader ini, kami boleh mengelakkan pengguna memuat naik fail ke pelayan terlebih dahulu, dan kami boleh mengendalikannya pada klien penyemak imbas. Prapemprosesan ini sebelum memuat naik ke pelayan adalah perlu.
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu kajian semua orang.