JS使用base64格式上傳文件
更新時(shí)間:2022年07月15日 08:48:52 作者:海闊天空BM
這篇文章主要為大家詳細(xì)介紹了JS使用base64格式上傳文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了JS使用base64格式上傳文件的具體代碼,供大家參考,具體內(nèi)容如下
html頁(yè)面
<input type="file" id="fielinput" /> <img id="txshow" style="width:100px;height:100px;"/> <br/>解析之后的base64數(shù)據(jù):<br/> <p id="data"></p>
js部分
/*** ?*? ?* FileReader 對(duì)象允許Web應(yīng)用程序異步讀取存儲(chǔ)在用戶計(jì)算機(jī)上的文件(或原始數(shù)據(jù)緩沖區(qū))的內(nèi)容, ?* 使用 File 或 Blob 對(duì)象指定要讀取的文件或數(shù)據(jù)。 ? ?其中File對(duì)象可以是來(lái)自用戶在一個(gè)<input>元素上選擇文件后返回的FileList對(duì)象, ? ?也可以來(lái)自拖放操作生成的 DataTransfer對(duì)象,還可以是來(lái)自在一個(gè)HTMLCanvasElement上執(zhí)行mozGetAsFile()方法后返回結(jié)果 */ /** ?* FileReader() 構(gòu)造函數(shù) ?*? ?* 屬性 ?* ? ? ?FeileReader.error只讀,表示讀取文件失敗時(shí)發(fā)生的錯(cuò)誤 ?* ? ? ?FeileReader.readyState只讀,readyState代表數(shù)字,狀態(tài) ?* ? ? ? ? EMPTY => 0 => 還未加載任何數(shù)據(jù) ? ?* ? ? ? ? LOADINF => 1 => 正在加載 ?* ? ? ? ? DONE => 2 => 已經(jīng)全部讀取完成 ?* ? ? ?FeileReader.result只讀, ?* ? ? ? ? ?文件的內(nèi)容,這個(gè)屬性要在讀取完成(也就是readyState變?yōu)?時(shí))后才有效。 ?*? ?* 事件處理事件 ?* ? ? ?FeileReader.onabort? ?* ? ? ? ? ?處理abort事件,在讀取操作中如果要中斷(終止)執(zhí)行的事件 ?* ? ? ?FeileReader.error ?* ? ? ? ? ?在讀取時(shí)如果發(fā)生錯(cuò)誤時(shí)會(huì)觸發(fā) ?* ? ? ?FeileReader.onload ?* ? ? ? ? ?處理load事件,在讀取操作完成時(shí)觸發(fā)的(成功時(shí)若有提示框彈出成功等字樣,寫在這里) ?* ? ? ? ? ?FeileReader.onload = function(){} ?* ? ? ?FeileReader.onloadStart? ?* ? ? ? ? ?在開(kāi)始讀取的時(shí)候觸發(fā) ?* ? ? ?FeileReader.onloadEnd ?* ? ? ? ? ?在讀取操作結(jié)束的時(shí)候觸發(fā) ?* ? ? ?FeileReader.onProgess ?* ? ? ? ? ?該事件在讀取blob時(shí)觸發(fā) ?*? ?* 方法 ?* ? ? ?FeileReader.abort() ?* ? ? ? ? ?中止讀取操作。在返回時(shí),readyState屬性為DONE。 ?* ? ? ?FeileReader.readAsArrayBuffer() ?* ? ? ? ? ?開(kāi)始讀取指定的Blob中的內(nèi)容,一旦完成,result屬性中保存的將是被讀取文件的ArrayBuffer數(shù)據(jù)對(duì)象 ?* ? ? ?FileReader.readAsBinaryString() ?* ? ? ? ? ?開(kāi)始讀取指定的Blob中的內(nèi)容,一旦完成,result屬性中將包含所讀取文件的原始二進(jìn)制數(shù)據(jù) ?* ? ? ?FileReader.readAsDataURL() ?* ? ? ? ? ?開(kāi)始讀取指定的Blob中的內(nèi)容,一旦完成,result屬性中將包含一個(gè)data: URL格式的Base64字符串表示所讀取文件的內(nèi)容 ?* ? ? ? ? ?1. readAsDataURL? ?* ? ? ? ? ?方法會(huì)讀取指定的 Blob 或 File 對(duì)象。讀取操作完成的時(shí)候,readyState 會(huì)變成已完成DONE,并觸發(fā) loadend 事件, ?* ? ? ? ? ?同時(shí) result 屬性將包含一個(gè)data:URL格式的字符串(base64編碼)以表示所讀取文件的內(nèi)容。 ?* ? ? ? ? ?參數(shù): 即將被讀取的 Blob 或 File 對(duì)象。 ?* ? ? ?FileReader.readAsText()? ?* ? ? ? ? ?開(kāi)始讀取指定的Blob中的內(nèi)容,一旦完成,result屬性中將包含一個(gè)字符串來(lái)表示讀取的文件內(nèi)容 ?* ? ?*? ?*? ?* **/ var input = document.getElementById("fielinput"); input.addEventListener('change', readFile, false); function readFile() { ? ?var file = this.files[0]; ? ? //判斷是否是圖片類型 ? ? /*if (!/image\/\w+/.test(file.type)) { ? ? ?alert("只能選擇圖片"); ? ? ?return false; ? ? ?}*/ ? ? var reader = new FileReader(); // 返回一個(gè)新的FileReader函數(shù) ? ? reader.readAsDataURL(file); ? ? reader.onloadstart = function (e){? ? ? ? ? console.log(e) ? ? ? ? console.log('開(kāi)始了') ? ? } ? ? reader.onprogress = function(e){ ? ? ? ? console.log(e) ? ? } ? ? reader.onload = function (e) { ? ? ? ? console.log(e); ? ? ? ? console.log(reader.result); ? ? ? ? txshow.src = this.result; ? ? ? ? document.getElementById("data").innerText=this.result.substring(this.result.indexOf(',')+1); ? ? } ? ? reader.onloadend = function(e){ ? ? ? ? console.log(e) ? ? ? ? console.log('結(jié)束了') ? ? } }
小提示
function fileFormData(files){ ? ? console.log(this.files[0]) ? ? console.log(files.target.files[0]) }
在上傳文件中,this.files[0]
全等于files.target.files[0]
的
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 簡(jiǎn)單實(shí)現(xiàn)js上傳文件功能
- JS中使用FormData上傳文件、圖片的方法
- js獲取上傳文件的絕對(duì)路徑實(shí)現(xiàn)方法
- 一個(gè)簡(jiǎn)單的jQuery插件ajaxfileupload.js實(shí)現(xiàn)ajax上傳文件例子
- js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口
- file控件選擇上傳文件確定后觸發(fā)的js事件是哪個(gè)
- js判斷上傳文件后綴名是否合法
- 使用ajaxfileupload.js實(shí)現(xiàn)ajax上傳文件php版
- jQuery實(shí)現(xiàn)jQuery-form.js實(shí)現(xiàn)異步上傳文件
- js獲取判斷上傳文件后綴名的示例代碼
相關(guān)文章
實(shí)現(xiàn)變速回到頂部的JavaScript代碼
一般網(wǎng)頁(yè)的下方都會(huì)放置一個(gè)置頂按鈕, 尤其是頁(yè)面底部沒(méi)有導(dǎo)航的網(wǎng)頁(yè), 這樣可以幫助訪客重新找到導(dǎo)航或者重溫一遍廣告 (想得真美).2011-05-05javascript實(shí)現(xiàn)自動(dòng)填寫表單實(shí)例簡(jiǎn)析
這篇文章主要介紹了javascript實(shí)現(xiàn)自動(dòng)填寫表單的方法,以一個(gè)簡(jiǎn)單實(shí)例形式分析了JavaScript結(jié)合瀏覽器設(shè)置實(shí)現(xiàn)自動(dòng)保存表單的相關(guān)技巧,需要的朋友可以參考下2015-12-12JavaScript 實(shí)現(xiàn)繼承的幾種方式
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)繼承的幾種方式,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下2021-02-02