//下載圖片
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 等
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)})}
})
本地文件下載保存
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);});});});}
);