
文章插圖
本文首發(fā)于公眾號(hào)《前端全棧開發(fā)者》關(guān)注這個(gè)脫發(fā)、擺攤、賣貨、持續(xù)學(xué)習(xí)的程序員,第一時(shí)間閱讀最新文章,會(huì)優(yōu)先兩天發(fā)表新文章 。關(guān)注即可領(lǐng)取大禮包,準(zhǔn)能為你節(jié)省不少錢!
上傳文件的能力是許多Web和移動(dòng)應(yīng)用的關(guān)鍵需求,從將照片上傳到社交媒體上到將簡(jiǎn)歷發(fā)布到工作門戶網(wǎng)站上,文件上傳無處不在 。
作為一名Web開發(fā)人員,我們一定知道HTML提供了原生文件上傳的支持,并借助于JavaScript的一點(diǎn)幫助 。在HTML5中,F(xiàn)ile API被添加到DOM中 。利用它,我們可以讀取 FileList 和其中的 File 對(duì)象,這就解決了文件的多種用例,即在本地加載文件或通過網(wǎng)絡(luò)發(fā)送到服務(wù)器進(jìn)行處理等 。
在本文中,我們將討論HTML文件上傳支持的10種用法,希望你覺得它有用 。
在任何時(shí)候,如果您想使用這些文件上傳功能,都可以在這里找到:
HTML文件上傳演示:https://html-file-upload.netlify.app/
該演示的源代碼在我的Github存儲(chǔ)庫中,?請(qǐng)隨時(shí)關(guān)注我,并通過示例不斷更新代碼,如果您覺得有用,請(qǐng)給一個(gè)? 。
源代碼倉庫:https://github.com/atapas/html-file-upload
1.單個(gè)文件上傳我們可以將輸入類型指定為 file,以在Web應(yīng)用程序中使用文件上傳器功能 。
<input type="file" id="file-uploader">輸入文件類型使用戶可以通過按鈕上傳一個(gè)或多個(gè)文件,默認(rèn)情況下,它允許使用操作系統(tǒng)的本地文件瀏覽器上傳單個(gè)文件 。
上傳成功后,F(xiàn)ile API 可以使用簡(jiǎn)單的JavaScript代碼讀取 File 對(duì)象 。要讀取 File 對(duì)象,我們需要監(jiān)聽文件上傳器的 change 事件 。
首先,通過ID獲取文件上傳器實(shí)例
const fileUploader = document.getElementById('file-uploader');然后添加一個(gè) change 事件偵聽器,以在上傳完成后讀取文件對(duì)象,我們從 event.target.files 屬性獲取上傳的文件信息 。
fileUploader.addEventListener('change', (event) => {const files = event.target.files;console.log('files', files);});在瀏覽器控制臺(tái)中觀察輸出,注意 FileList 數(shù)組中的 File 對(duì)象擁有上傳文件的所有元數(shù)據(jù)信息 。
下面是相同示例的代碼頁,供您進(jìn)一步研究
CodePen:https://codepen.io/atapas/pen/rNLOyRm
<div><h1>單個(gè)文件上傳</h1><input type="file" id="file-uploader"><p>上傳文件,并在瀏覽器控制臺(tái)中查看輸出 。</p><p id="feedback"></p></div>const fileUploader = document.getElementById('file-uploader');fileUploader.addEventListener('change', (event) => {const files = event.target.files;console.log('files', files);const feedback = document.getElementById('feedback');const msg = `File ${files[0].name} uploaded successfully!`;feedback.innerHTML = msg;});2.多文件上傳我們可以一次上傳多個(gè)文件 。為此,我們只需要在輸入文件標(biāo)簽中添加一個(gè)名為 multiple 的屬性即可 。
<input type="file" id="file-uploader" multiple />現(xiàn)在,文件瀏覽器將允許您上傳一個(gè)或多個(gè)要上傳的文件 。就像前面的例子一樣,你可以添加一個(gè) change 事件處理程序來捕獲上傳文件的信息 。您是否注意到 FileList 是一個(gè)數(shù)組?對(duì),對(duì)于多個(gè)文件上傳,數(shù)組將具有以下信息:
下面是CodePen鏈接,用于探索多個(gè)文件上傳 。
CodePen:https://codepen.io/atapas/pen/MWeamYp
<div><h1>多文件上傳</h1><input type="file" id="file-uploader" multiple><p>上傳多個(gè)文件并在瀏覽器控制臺(tái)中查看輸出</p><p id="feedback"></p></div>const fileUploader = document.getElementById('file-uploader');fileUploader.addEventListener('change', (event) => {const files = event.target.files;console.log('files', files);// show the upload feedbackconst feedback = document.getElementById('feedback');const msg = `${files.length} file(s) uploaded successfully!`;feedback.innerHTML = msg;});3.了解文件元數(shù)據(jù)每當(dāng)我們上傳一個(gè)文件時(shí),F(xiàn)ile 對(duì)象都有元數(shù)據(jù)信息,如文件名、大小、最后更新時(shí)間、類型等,此信息對(duì)于進(jìn)一步的驗(yàn)證和決策很有用 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 北京正規(guī)娛樂公司招募簽約藝人練習(xí)生招募童星演員免費(fèi)培養(yǎng)出道 哪些娛樂公司在招零基礎(chǔ)藝人女生
- 《蕙蘭瑜伽視頻教程》01 蕙蘭瑜伽基礎(chǔ)知識(shí)
- 你的運(yùn)營商積分有可能要被清零 電信用戶怎樣積分兌換話費(fèi)
- 內(nèi)蒙古通遼市中風(fēng)險(xiǎn)地區(qū)清零
- 瑜伽入門基礎(chǔ)教學(xué)動(dòng)作視頻
- 溫婉到爆的仙人網(wǎng)名女生
- java程序員必備的基礎(chǔ)知識(shí) java截取字符串后幾位
- python語言基礎(chǔ)知識(shí) python零基礎(chǔ)教程
- 2022西安解封時(shí)間預(yù)測(cè) 西安解封要實(shí)現(xiàn)社會(huì)面清零
- 2022西安實(shí)現(xiàn)社會(huì)面清零具體措施
