// 通過id獲取文件上傳者const fileUploader = document.getElementById('file-uploader');// 監(jiān)聽 change 事件并讀取元數(shù)據(jù)fileUploader.addEventListener('change', (event) => {// 獲取FileList數(shù)組const files = event.target.files;// 循環(huán)瀏覽文件并獲取元數(shù)據(jù)for (const file of files) {const name = file.name;const type = file.type ? file.type: 'NA';const size = file.size;const lastModified = file.lastModified;console.log({ file, name, type, size, lastModified });}});這是單個文件上傳的輸出:
使用此CodePen進行進一步探索
CodePen:https://codepen.io/atapas/pen/gOMaRJv
<div><h1>Read File Metadata</h1><input type="file" id="file-uploader"><p id="feedback"></p></div>const fileUploader = document.getElementById('file-uploader');fileUploader.addEventListener('change', (event) => {const files = event.target.files;console.log('files', files);for (const file of files) {const name = file.name;const type = file.type ? file.type : 'NA';const size = file.size;const lastModified = file.lastModified;console.log({file, name, type, size, lastModified});const feedback = document.getElementById('feedback');const msg = ` File Name: ${name} <br/>File Size: ${size} <br/>File type: ${type} <br/>File Last Modified: ${new Date(lastModified)}`;feedback.innerHTML = msg;}});4.了解文件 accept屬性我們可以使用 accept 屬性來限制要上傳的文件的類型,您可能希望在用戶上傳個人資料圖片時,只顯示允許瀏覽png格式圖片類型 。
<input type="file" id="file-uploader" accept=".jpg, .png" multiple>在上面的代碼中,文件瀏覽器將只允許擴展名為 jpg 和 png 的文件 。
請注意,在這種情況下,文件瀏覽器會自動將文件選擇類型設置為自定義而不是全部 。但是,如果需要,您始終可以將其更改回所有文件 。
使用此CodePen探索 accept 屬性
CodePen:https://codepen.io/atapas/pen/OJXymRP
<div><h1>只能選擇.png和.jpg文件</h1><input type="file" id="file-uploader" accept=".jpg, .png" multiple><p>Upload files and see the output in browser console</p></div>const fileUploader = document.getElementById('file-uploader');fileUploader.addEventListener('change', (event) => {const files = event.target.files;console.log('files', files);});5.管理文件內容您可以在成功上傳文件后顯示文件內容 。對于個人資料圖片,如果上傳后不立即向用戶展示上傳的圖片,會造成混亂 。
我們可以使用 FileReader 對象將文件轉換為二進制字符串 。然后添加 load 事件偵聽器,以在成功上傳文件時獲取二進制字符串 。
// 獲取FileReader的實例const reader = new FileReader();fileUploader.addEventListener('change', (event) => {const files = event.target.files;const file = files[0];// 上傳后獲取文件對象并讀取// 數(shù)據(jù)作為URL二進制字符串reader.readAsDataURL(file);// 加載后,對字符串進行處理reader.addEventListener('load', (event) => {// 在這里我們創(chuàng)建一個圖像標簽并添加圖片const img = document.createElement('img');imageGrid.appendChild(img);img.src = https://www.520longzhigu.com/diannao/event.target.result;img.alt = file.name;});});嘗試在下面的CodePen中選擇一個圖像文件,然后查看其渲染 。
CodePen:https://codepen.io/atapas/pen/zYBvdjZ
<div><h1>顯示文件內容</h1><input type="file" id="file-uploader" accept=".jpg, .jpeg, .png" ><div id="image-grid"></div></div>const fileUploader = document.getElementById('file-uploader');const reader = new FileReader();const imageGrid = document.getElementById('image-grid');fileUploader.addEventListener('change', (event) => {const files = event.target.files;const file = files[0];reader.readAsDataURL(file);reader.addEventListener('load', (event) => {const img = document.createElement('img');imageGrid.appendChild(img);img.src = https://www.520longzhigu.com/diannao/event.target.result;img.alt = file.name;});});6.驗證文件大小如我們所見,我們可以讀取文件的大小元數(shù)據(jù),實際上可以將其用于文件大小驗證,您可能允許用戶上傳最大1MB的圖像文件 。讓我們看看如何實現(xiàn)這一目標 。
以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助:- 北京正規(guī)娛樂公司招募簽約藝人練習生招募童星演員免費培養(yǎng)出道 哪些娛樂公司在招零基礎藝人女生
- 《蕙蘭瑜伽視頻教程》01 蕙蘭瑜伽基礎知識
- 你的運營商積分有可能要被清零 電信用戶怎樣積分兌換話費
- 內蒙古通遼市中風險地區(qū)清零
- 瑜伽入門基礎教學動作視頻
- 溫婉到爆的仙人網(wǎng)名女生
- java程序員必備的基礎知識 java截取字符串后幾位
- python語言基礎知識 python零基礎教程
- 2022西安解封時間預測 西安解封要實現(xiàn)社會面清零
- 2022西安實現(xiàn)社會面清零具體措施
