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

【uniapp】實現(xiàn)對TXT文本文件的讀取和保存下載

這篇具有很好參考價值的文章主要介紹了【uniapp】實現(xiàn)對TXT文本文件的讀取和保存下載。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

開發(fā)一個uniapp項目時,需要實現(xiàn)對文本的讀取和保存文件到本地,雖然可以跨平臺,但還是有幾個平臺不受支持的,接下來講講怎么兼容處理讀寫文本文件這個問題。

1. 功能說明

項目都按照uniapp官方文檔說明寫,發(fā)現(xiàn)此功能對應(yīng)的AppH5平臺是沒有實現(xiàn)的

App H5 微信小程序 QQ小程序 字節(jié)跳動小程序
× ×

如果只想要實現(xiàn)H5和小程序的,不管APP,那就可以滿足;
官方文檔上說用uni.saveFile()保存文件到本地的,別看錯,這個可不是,看一下傳入的參數(shù)tempFilePath就知道,那是用來把臨時文件保存到本地的

2. 使用功能

接下來會講,假設(shè)使用的功能需要調(diào)用什么方法

1. 保存文本文件

有一個方法是saveTextFile(),用來保存文本文件,需要傳三個參數(shù),分別是文件路徑filepath,文件名filename,文本內(nèi)容text,代碼如下

// #ifdef MP-WEIXIN
filePath = wx.env.USER_DATA_PATH + `/${filePath}`;
// #endif
saveTextFile({
	filePath:filepath,
	fileName:filename,
	text:text,
	success:(res)=>{
		uni.showToast({
			icon:'success',
			title:'已保存'
		})
	},
	fail:(err)=>{
		console.log('save text file fail',err)
	}
})

2. 讀取文本文件

還有一個方法是openTextFile(),用來讀取文本文件,傳入的參數(shù)是文件file,類似File對象,參考代碼如下

uni.chooseFile({
	count:1,
	extension:['.txt','.md'],
	fail:config.fail,
	success:(res)=>{
		openTextFile({
			file:res.tempFiles[0],
			fail:config.fail,
			success:(res)=>{
				if(typeof config.success=='function'){
					config.success({ text:res.result })
				}
				// #ifdef MP-WEIXIN
				res.reader.close();
				// #endif
			},
		})
	}
});

在微信小程序上調(diào)用chooseFile()返回的是沒有tempFilePaths,只有 tempFiles

3. 實現(xiàn)方法

由于各平臺的實現(xiàn)方式不同,就用HBuilderX的條件編譯,目前功能只支持H5小程序,其它平臺暫不支持哦

1. saveTextFile()

接著實現(xiàn)功能的方法saveTextFile(),保存文本文件,參考代碼如下

// #ifdef MP
uni.getFileSystemManager().writeFile({
	filePath:config.filePath,
	data:config.text,
	encoding:'utf8',
	success:config.success,
	fail:config.fail,
})
// #endif

// #ifdef H5
let blob = new Blob([config.text], { type: 'text/plain' });
let url = window.URL || window.webkitURL;
let objUrl = url.createObjectURL(blob);
let a = document.createElement('a');
a.href=objUrl;
if(config.fileName) a.setAttribute('download', config.fileName);
document.body.appendChild(a);
a.click();
a.remove();
url.revokeObjectURL(objUrl);
config.success({
	path: objUrl,
	errMsg: 'ok'
});
// #endif

H5平臺上沒有保存文件的方法,只能通過下載文件方式處理

2. openTextFile()

還有,實現(xiàn)功能的方法openTextFile(),讀取文本文件,參考代碼如下,該功能目前也只支持H5小程序

let file = config.file;
		
// #ifdef H5
const reader = new FileReader();
reader.onerror = config.fail;
reader.onload = () => {
	config.success({
		result:reader.result,
		reader
	});
};
reader.readAsText(file, 'utf-8');
// #endif

// #ifdef MP
const manager = uni.getFileSystemManager();
manager.readFile({
	filePath:file.path,
	encoding:'utf-8',
	fail:config.fail,
	success:(res)=>{
		config.success({
			result:res.data,
			reader:manager,//不用時,需要調(diào)用reader.close()
		})
	},
})
// #endif

也許會說,看打開和保存的文件路徑就不對勁,不能選擇文件路徑在手機(jī)內(nèi)部存儲卡么,像這種目前來看是沒有的,此路不通,請繞道,要想實現(xiàn)這樣的,通過上傳文件到云存儲然后下載,貌似通過文件分享方式也行。文章來源地址http://www.zghlxwxcb.cn/news/detail-440655.html

到了這里,關(guān)于【uniapp】實現(xiàn)對TXT文本文件的讀取和保存下載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包