日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript纯前端上传和下载文件

發布時間:2023/12/31 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript纯前端上传和下载文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不涉及前后端交互,由前端數據生成文件并下載和上傳文件前端解析的過程。

目錄

一、由前端數據生成文件并下載

1. 函數編寫

2. 使用方法

二、上傳文件并解析

?????????1. 函數編寫

2. 使用方法

總結


一、由前端數據生成文件并下載

1. 函數編寫

由JS代碼生成一個<a>標簽元素。設置元素的href和download屬性,為函數傳入參數的文件內容和文件名,并設置元素為不可見,以消除對前端界面的視覺影響。

將元素加入body,并模擬其點擊事件,即下載一個內容為fileContent、名字為fileName的文件。并在點擊事件后移除元素。

// 下載文件,文件名為fileName,文件內容為fileContent function downloadFile(fileName, fileContent) {let element = document.createElement('a');element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(fileContent));element.setAttribute('download', fileName);element.style.display = 'none';document.body.appendChild(element);element.click();document.body.removeChild(element); }

2. 使用方法

可以在JS代碼的任意執行時刻,動態傳入參數實現文件的下載。如實現點擊按鈕下載文件的功能,則可以在按鈕的點擊事件中調用函數。

$('#button').onclick = function() {downloadFile('Hello.txt', 'Hello World!');}

二、上傳文件并解析

1. 函數編寫

由JS代碼生成一個<input>標簽元素。設置元素的type屬性為file,以,并設置元素為不可見。將元素加入body,并模擬其點擊事件。其會喚醒一個文件上傳對話框,用戶可以手動選擇需要上傳解析的文件。

設置元素的onchange屬性,在元素內容改變時,執行以下代碼:

  • 若元素內容為空,則直接返回;
  • 若元素內容非空,且有上傳文件,則創建一個FileReader,對文件內容進行讀取。讀取出的內容以字符串形式,由函數的傳入參數也即對文件內容進行操作的回調函數進行處理。
// 上傳文件,彈出上傳對話框,文件內容由uploadCallBackFunction回調函數處理 function uploadFile(uploadCallBackFunction) {let element = document.createElement('input');element.setAttribute('type', 'file');element.style.display = 'none';element.onchange = function (){if (this.value==='')return;if (this.files[0]){let reader = new FileReader();reader.readAsText(this.files[0], "UTF-8");reader.onload = function(evt){let file_string = evt.target.result;uploadCallBackFunction(file_string);}}}document.body.appendChild(element);element.click();document.body.removeChild(element); }

2. 使用方法

由于上傳文件并讀文件解析的操作是異步性的(寫在onchange函數中),函數無法通過返回值返回需要的文件內容。因此通過參數傳入回調函數的方式,在讀取文件內容后調用,對讀取到的內容進行處理。

$('#button').onclick = function () {uploadFile(console.log);}

總結

使用純前端的方式實現了文件的上傳與下載。實際場景中,可以應用于一鍵導入導出前端頁面保存的配置等;在支持不同文件格式時,可以使用前端解析的方式使數據格式統一,降低前后端交互過程的耦合性。

總結

以上是生活随笔為你收集整理的JavaScript纯前端上传和下载文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久在线观看 | 久久免费国产 | www国产无套内射com | 91视频网| 91精品国产一区二区在线观看 | 亚洲精品在线视频观看 | 直接看av的网站 | 日韩国产小视频 | 欧美一级黄视频 | 美女视频毛片 | 激情欧美一区二区三区精品 | 中文字幕一区二区三区人妻 | 黑人干亚洲| 神宫寺奈绪一区二区三区 | 欧美成人生活片 | 日日操日日爽 | 国产在线视频福利 | 婷婷在线观看视频 | 欧美一区二区三区视频在线 | 九九久久九九久久 | 成人免费黄色网址 | 成人精品在线观看视频 | 欧美色综合色 | 天天在线观看 | 中文字幕亚洲精品在线 | 久草最新| 国产一级特黄a高潮片 | 亚洲熟女www一区二区三区 | 姑娘第5集在线观看免费 | 性久久久久 | 2018中文字幕在线观看 | 日本少妇做爰全过程毛片 | 黄网av | 国产精品羞羞答答在线观看 | www精品视频| 麻豆视频在线观看免费网站黄 | 午夜不卡影院 | 国产精品一区二区在线免费观看 | 欧美性xxxx| 青青视频免费看 | 久久91亚洲人成电影网站 | 五月天久久久 | 97精品自拍| 日韩一区二区三区在线观看 | 色综合天天综合网天天狠天天 | 国产亚洲一区二区在线 | 视频一区二区国产 | 亚洲一区自拍偷拍 | 超碰69| 97超碰人人干 | 懂色av蜜臀av粉嫩av分享吧最新章节 | 成人av专区| 黑丝少妇喷水 | 国产av一区二区三区最新精品 | 久久精品电影网 | 久久7777| 清纯唯美亚洲激情 | 亚洲日本中文字幕 | 日韩中出| www天堂在线| 日本中文字幕一区二区 | 欧美淫视频 | 香蕉视频免费 | 色哟哟国产精品 | 性久久久久久久 | 国产黄色片在线播放 | 国产亚洲精品久久久久丝瓜 | 国内一区二区三区 | 美女被捅个不停 | 欧美精品在欧美一区二区 | 国产精品第 | 国产探花一区二区 | 欧美一区二区三区电影 | 亚洲高清福利 | 美国少妇在线观看免费 | 永久免费无码av网站在线观看 | 特大黑人巨交吊性xxxx视频 | 污片视频在线观看 | 成人在线免费网站 | 波多野一区二区三区 | 国内精久久久久久久久久人 | av久草| 亚洲24p | 精品一区二区成人免费视频 | 四虎影院黄色 | 久久亚洲区 | 亚洲黄色免费观看 | 成人在线不卡视频 | 国产精品久久久午夜夜伦鲁鲁 | 日韩欧美中文字幕一区二区三区 | 爱情岛论坛永久入址在线 | 秋霞伦理一区二区 | 美女啪啪无遮挡 | 黑人vs日本人ⅹxxxhd | 第四色影音先锋 | 极品超粉嫩尤物69xx | 久久亚洲a v| 九九色精品| 国产伦精品一区二区三区视频1 |