国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

web前端之JavaScript選擇文件和文件夾、全程使用WebApi操作文件、不涉及html、showOpenFilePicker、showDirectoryPicker

這篇具有很好參考價值的文章主要介紹了web前端之JavaScript選擇文件和文件夾、全程使用WebApi操作文件、不涉及html、showOpenFilePicker、showDirectoryPicker。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


選擇文件

此方式不需要創(chuàng)建多余的html標簽,非常適合項目開發(fā)中使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-828598.html

<button onclick="readFile()">選擇文件</button>

<script>
// 不支持xlsx/docx等微軟文件格式
async function readFile() {
	try {
		// 讀取文件
		const [fileHandle] = await window.showOpenFilePicker();
		const file = await fileHandle.getFile();
		
		let reader = new FileReader();
		
		reader.onload = ({ target: { result } }) => {
		console.log(`-------輸出結(jié)果-------\n${result}`);
		}
		
		reader.readAsText(file, 'utf-8');
	} catch (error) {
		console.error('Error selecting file:', error);
	}
}
</script>

選擇文件夾

<button onclick="chooseFolder()">選擇文件夾</button>

<script>
// 選擇文件
async function chooseFolder() {
	try {
		let handle = await showDirectoryPicker(),
		root = await processHandle(handle);
		
		for(let i = 0;i < root.child.length; i++) {
			readFile(root.child[i])
		}
	} catch (error) {
		console.log(error);
		// 用戶拒絕的處理
	}
}

// 解析文件夾
async function processHandle(handle) {
    if (handle.kind === 'file') return handle;

    handle.child = [];
    // 得到異步迭代器
    let iter = handle.entries();

    for await (let item of iter) {
        handle.child.push(await processHandle(item[1]));
    }

    return handle;
}

// 讀取文件內(nèi)容
function readFile(fileHandle) {
	let file = await fileHandle.getFile(),
		reader = new FileReader();
	
	reader.onload = ({ target: { result } }) => {
		console.log(result);
	}
	
	reader.readAsText(file, 'utf-8');
	
	// kind: "directory" 表示選擇的是文件
	// name: "aText" 文件名字
}
</script>

完整版

<div class="p_20 bs_bb">
    <div class="bs_bb p_10 d_f jc_se bc_rgba_68_68_86_05">
        <button class="fs_30 cursor_pointer" onclick="chooseFile()">選擇文件</button>
        <button class="fs_30 cursor_pointer ml_20" onclick="chooseFolder()">選擇文件夾</button>
    </div>
</div>

<script>
    // 選擇文件
    async function chooseFile() {
        // 創(chuàng)建用于存放文件句柄的變量
        let fileHandle = undefined;
        // 打開文件選擇器,解構(gòu)返回的數(shù)組中的第一個元素
        [fileHandle] = await window.showOpenFilePicker();

        readFile(fileHandle);
    }

    // 選擇文件夾
    async function chooseFolder() {
        try {
            let handle = await showDirectoryPicker(),
                root = await processHandle(handle);

            for (let i = 0; i < root.child.length; i++) readFile(root.child[i]);
        } catch (error) {
            // 用戶拒絕的處理
            console.log(error);
        }
    }

    // 解析文件夾
    async function processHandle(handle) {
        if (handle.kind === 'file') return handle;

        handle.child = [];
        // 得到異步迭代器
        let iter = handle.entries();

        for await (let item of iter) {
            handle.child.push(await processHandle(item[1]));
        }

        return handle;
    }

    // 獲取文件內(nèi)容
    async function readFile(fileHandle) {
        let file = await fileHandle.getFile(),
            reader = new FileReader();

        reader.onload = ({ target: { result } }) => {
            console.log(`-------輸出結(jié)果-------\n${result}`);
        }

        reader.readAsText(file, 'utf-8');

        // kind: "directory" 表示選擇的是文件
        // name: "aText" 文件名字
    }
</script>

到了這里,關(guān)于web前端之JavaScript選擇文件和文件夾、全程使用WebApi操作文件、不涉及html、showOpenFilePicker、showDirectoryPicker的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • winform 使用CommonOpenFileDialog選擇文件夾或文件

    winform 使用CommonOpenFileDialog選擇文件夾或文件

    選擇文件夾 選擇文件 注:需要添加引用 using Microsoft.WindowsAPICodePack.Dialogs; 一、C#通過CommonOpenFileDialog創(chuàng)建文件夾更美觀 二、通過nuGet加載dll 首先,打開VS2019,通過菜單欄中的“工具”菜單 ?然后搜索?WindowsAPICodePack,完成安裝。

    2024年02月13日
    瀏覽(24)
  • Unity C# 打開windows對話框選擇文件夾或選擇文件

    unity沒有提供打開windows對話框的api,在開發(fā)種也會遇到選擇系統(tǒng)文件夾或選擇系統(tǒng)文件的需求

    2024年04月26日
    瀏覽(30)
  • qt通過QFileDialog獲取文件路徑&保存文件&選擇文件夾

    ????????QT是一款常用的UI設(shè)計工具, 我們在日常開發(fā)中經(jīng)常需要對文件或者文件夾進行操作,下面將介紹QT對于獲取文件路徑保存文件選擇文件夾等場景的獲取的偽代碼.? 注:適用于各語言的QT,比如python的pyQT之類的 保存文件: 根據(jù)指定文件夾找對應(yīng)文件: 另存為:

    2024年02月06日
    瀏覽(92)
  • JavaScript 打開本地文件夾的N種方法

    方法一 通過ActiveXObject對象 比如打開C盤: 方法二 設(shè)置一個不可見的input標簽,通過input上面的webkitdirectory 屬性打開本地文件,我寫的是vue3用法: 方法三 設(shè)置一個不可見的input標簽,通過input上面的multiple 屬性打開本地文件,我寫的是vue3用法:這個屬性與webkitdirectory 的具體

    2024年02月15日
    瀏覽(26)
  • python pyqt5 如何點擊按鈕,打開文件夾選擇目錄

    您可以使用PyQt5的QFileDialog類來實現(xiàn)打開文件夾選擇目錄的功能。下面是一個示例代碼,演示了如何創(chuàng)建一個窗口,包含一個按鈕,點擊按鈕后彈出文件夾選擇對話框并返回所選目錄的路徑: import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog class MainWindow(Q

    2024年02月10日
    瀏覽(22)
  • Zip壓縮文件夾 + 前端導(dǎo)出

    2024年03月21日
    瀏覽(24)
  • 前端上傳文件夾或文件至后端(SpringBoot)

    前端上傳文件夾或文件至后端(SpringBoot)

    前端上傳文件夾使用的是 input 標簽的file屬性,最重要的是 webkitdirectory 這個屬性,有了這個屬性之后input才可以選擇文件夾,但也只能選擇文件夾了。 在webkitdirectory的官方文檔里有對該屬性的說明。 我們可以在這基礎(chǔ)上做延伸,做一個表單來上傳文件夾: form要加上 enctype=“

    2024年02月05日
    瀏覽(20)
  • Nginx部署前端dist文件夾

    Nginx部署前端dist文件夾

    nginx部署dist包_墨寒ice的博客-CSDN博客_nginx dist nginx服務(wù)器部署dist文件夾 - 菜鳥學院 (noobyard.com) nginx 部署 dist 文件 - 懶惰ing - 博客園 (cnblogs.com) 1.下載Nginx的壓縮包(tar.gz) ? 1.本地下載上傳nginx: download ? 2.wget命令下載 wget -c https://nginx.org/download/nginx-1.20.1.tar.gz 2.配置安裝Ngi

    2024年02月08日
    瀏覽(29)
  • vue前端傳遞文件夾以及其他參數(shù)到后臺

    vue前端傳遞文件夾以及其他參數(shù)到后臺

    前端 1、前端通過FormData進行傳遞,代碼如下 后端 2、后端通過如下方式進行接收和解析 注意:如果后端接收不到數(shù)據(jù),或者前端沒有執(zhí)行請求方法,考慮可能是定義的函數(shù)名沖突導(dǎo)致,更改函數(shù)名重試即可 可能需要的方法

    2024年03月23日
    瀏覽(19)
  • 文心一言vs通義千問 之前端文件夾命名

    文心一言vs通義千問 之前端文件夾命名

    今天心血來潮想試試國內(nèi)百度和騰訊的AI在解決前端難題–文件命名方面的效果。 如下: 綜上,是百度會更貼近一些哈 大伙有什么命名的好工具嘛?

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包