// 文件上傳change事件的偵聽器fileUploader.addEventListener('change', (event) => {// 讀取文件大小const file = event.target.files[0];const size = file.size;let msg = ''; // 檢查文件大小是否大于1MB,并準(zhǔn)備一條消息 。if (size > 1024 * 1024) {msg = `<span style="color:red;">The allowed file size is 1MB. The file you are trying to upload is of ${returnFileSize(size)}</span>`;} else {msg = `<span style="color:green;"> A ${returnFileSize(size)} file has been uploaded successfully. </span>`;}// 向用戶顯示消息feedback.innerHTML = msg;});嘗試上傳不同大小的文件,以查看驗證的工作原理
CodePen:https://codepen.io/atapas/pen/pobjMKv
<div><h1>檢查文件大小</h1><input type="file" id="file-uploader"><div id="feedback"></div</div>const fileUploader = document.getElementById('file-uploader');const feedback = document.getElementById('feedback');fileUploader.addEventListener('change', (event) => {const file = event.target.files[0];console.log('file', file);const size = file.size;console.log('size', size);let msg = '';if (size > 1024 * 1024) {msg = `<span style="color:red;">The allowed file size is 1MB. The file you are trying to upload is of ${returnFileSize(size)}</span>`;} else {msg = `<span style="color:green;"> A ${returnFileSize(size)} file has been uploaded successfully. </span>`;}feedback.innerHTML = msg;});function returnFileSize(number) {if(number < 1024) {return number + 'bytes';} else if(number >= 1024 && number < 1048576) {return (number/1024).toFixed(2) + 'KB';} else if(number >= 1048576) {return (number/1048576).toFixed(2) + 'MB';}}7.顯示文件上傳進度更好的可用性是讓你的用戶知道文件上傳的進程 ?,F(xiàn)在,我們知道了 FileReader 和讀取和加載文件的事件 。
const reader = new FileReader();FileReader 有另一個事件,稱為進度(progress),知道已加載了多少 。我們可以使用HTML5的 progress 標(biāo)簽來創(chuàng)建帶有此信息的進度欄 。
reader.addEventListener('progress', (event) => {if (event.loaded && event.total) {// 計算完成百分比const percent = (event.loaded / event.total) * 100;// 將值設(shè)置為進度組件progress.value = https://www.520longzhigu.com/diannao/percent;}});不如你試著上傳一個大一點的文件,看看下面的CodePen中的進度條工作情況如何?試試吧 。
CodePen:https://codepen.io/atapas/pen/eYzpwYj
<div><h1>File upload progress</h1><input type="file" id="file-uploader"><div id="feedback"></div><label id="progress-label" for="progress"></label><progress id="progress" value="https://www.520longzhigu.com/diannao/0" max="100"> </progress></div>const fileUploader = document.getElementById('file-uploader');const feedback = document.getElementById('feedback');const progress = document.getElementById('progress');const reader = new FileReader();fileUploader.addEventListener('change', (event) => {const files = event.target.files;const file = files[0];reader.readAsDataURL(file);reader.addEventListener('progress', (event) => {if (event.loaded && event.total) {const percent = (event.loaded / event.total) * 100;progress.value = https://www.520longzhigu.com/diannao/percent;document.getElementById('progress-label').innerHTML = Math.round(percent) + '%';if (percent === 100) {let msg = `<span style="color:green;">File <u><b>${file.name}</b></u> has been uploaded successfully.</span>`;feedback.innerHTML = msg;}}});});8.目錄上傳呢?我們可以上傳整個目錄嗎?好吧,這是可能的,但有一些限制 。有一個叫做 webkitdirectory 的非標(biāo)準(zhǔn)屬性(至少在寫這篇文章的時候是這樣),允許我們上傳整個目錄 。
雖然最初只針對基于WebKit的瀏覽器實現(xiàn),但webkitdirectory也可以在Microsoft Edge以及Firefox 50和更高版本中使用 。但是,即使它具有相對廣泛的支持,它仍然不是標(biāo)準(zhǔn)的,除非您別無選擇,否則不應(yīng)該使用它 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 北京正規(guī)娛樂公司招募簽約藝人練習(xí)生招募童星演員免費培養(yǎng)出道 哪些娛樂公司在招零基礎(chǔ)藝人女生
- 《蕙蘭瑜伽視頻教程》01 蕙蘭瑜伽基礎(chǔ)知識
- 你的運營商積分有可能要被清零 電信用戶怎樣積分兌換話費
- 內(nèi)蒙古通遼市中風(fēng)險地區(qū)清零
- 瑜伽入門基礎(chǔ)教學(xué)動作視頻
- 溫婉到爆的仙人網(wǎng)名女生
- java程序員必備的基礎(chǔ)知識 java截取字符串后幾位
- python語言基礎(chǔ)知識 python零基礎(chǔ)教程
- 2022西安解封時間預(yù)測 西安解封要實現(xiàn)社會面清零
- 2022西安實現(xiàn)社會面清零具體措施
