uniapp app安卓下载文件 图片 doc xls 数据流文件 app安卓本地路径下载保存

//下载图片

javascript 复制代码
downloadToLocal() {
	plus.android.requestPermissions(
		['android.permission.WRITE_EXTERNAL_STORAGE'],
		(success) => {
			uni.saveImageToPhotosAlbum({
				filePath: '/static/x.png',//本地地址
				success: () => {
					this.$refs.uToast.show({
						message: "模版下载成功!"
					})
				},
				fail: () => {
					uni.hideLoading();
					this.$refs.uToast.show({
						message: "模版下载失败"
					})
				}
			});
		}
	);
}

下载文件 doc xls 等

javascript 复制代码
uni.request({
url: `${http.config.baseURL}/user/dealear/import/template`, // 支持文件流、OSS文件下载
method: 'GET',
responseType: 'arraybuffer',
header: {'Authorization': 'Bearer' + ' ' + uni.getStorageSync('token')},
success: (res) => {
		const base64 = uni.arrayBufferToBase64(res.data)
		const filePath = '_documents/文件模版.xls' // 自定义路径
		// 写入文件
		plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) {
			fs.root.getFile(filePath, {
				create: true
			}, function(fileEntry) {
				fileEntry.createWriter(function(writer) {
					writer.onwrite = function(e) {
						plus.nativeUI.alert('文件已保存', function() {
							plus.runtime.openFile(filePath) // 打开文件
						})
					}
					writer.onerror = function(e) {
						console.error('写入失败: ' + e.message)
					}
					// writer.write(res.data)
					writer.writeAsBinary(base64)
				}, function(e) {
					console.error('创建Writer失败: ' + e.message)
				})
			}, function(e) {
				console.error('获取文件失败: ' + e.message)
			})
		}, function(e) {
			console.error('请求文件系统失败: ' + e.message)
		})
	}
})

本地文件下载保存

javascript 复制代码
var timestampInSeconds = Math.floor(new Date().getTime() / 1000)
let staticFilePath = plus.io.convertLocalFileSystemURL('/static/x.xlsm');
plus.android.requestPermissions(
  ['android.permission.WRITE_EXTERNAL_STORAGE'],
  () => {
    // 2. 复制文件到下载目录
    plus.io.resolveLocalFileSystemURL(staticFilePath, (entry) => {
      plus.io.resolveLocalFileSystemURL('/storage/emulated/0/', (root) => {
        entry.copyTo(root,`downloaded_`+timestampInSeconds+`.xlsm`, (newEntry) => {
          uni.showToast({ title: '文件已保存' });
          // 3. 尝试打开文件
          plus.runtime.openFile(newEntry.fullPath);
        });
      });
    });
  }
);