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

📅 2026/7/31 18:58:56
uniapp app安卓下载文件 图片 doc xls 数据流文件 app安卓本地路径下载保存
//下载图片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){constbase64uni.arrayBufferToBase64(res.data)constfilePath_documents/文件模版.xls// 自定义路径// 写入文件plus.io.requestFileSystem(plus.io.PRIVATE_DOC,function(fs){fs.root.getFile(filePath,{create:true},function(fileEntry){fileEntry.createWriter(function(writer){writer.onwritefunction(e){plus.nativeUI.alert(文件已保存,function(){plus.runtime.openFile(filePath)// 打开文件})}writer.onerrorfunction(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)})}})本地文件下载保存vartimestampInSecondsMath.floor(newDate().getTime()/1000)letstaticFilePathplus.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);});});});});微信小程序图片下载// 图片下载exportconstsaveQrcode(QRCode){if(!QRCode){uni.showToast({title:下载保存失败暂无二维码,icon:none});return;}uni.showLoading({title:下载中...});// 1. 指定一个明确的文件路径可选可解决 iOS 兼容问题constfilePath${wx.env.USER_DATA_PATH}/qrcode_${Date.now()}.png;uni.downloadFile({url:QRCode,filePath:filePath,// 指定路径success(res){uni.hideLoading();if(res.statusCode!200){uni.showToast({title:下载失败(状态码${res.statusCode}),icon:none});console.error(下载状态码异常:,res);return;}// 2. 可选验证是否为图片uni.getImageInfo({src:res.filePath||res.tempFilePath,success:(){// 是图片继续保存saveToAlbum(res.filePath||res.tempFilePath);},fail:(err){console.error(图片格式无效:,err);uni.showToast({title:下载内容不是有效图片,icon:none});}});},fail(err){uni.hideLoading();console.error(下载失败详情:,err);// 这里会显示具体错误如证书、超时等uni.showToast({title:网络错误下载失败,icon:none});}});}// 保存到相册带权限处理functionsaveToAlbum(filePath){// 先检查授权状态uni.getSetting({success(res){if(!res.authSetting[scope.writePhotosAlbum]){// 未授权先发起授权请求uni.authorize({scope:scope.writePhotosAlbum,success(){doSave(filePath);},fail(){// 用户拒绝授权引导打开设置uni.showModal({title:提示,content:需要您授权保存图片到相册,confirmText:去设置,success(modalRes){if(modalRes.confirm){uni.openSetting();}}});}});}else{doSave(filePath);}},fail(err){console.error(获取设置失败:,err);uni.showToast({title:权限检查失败,icon:none});}});}functiondoSave(filePath){uni.saveImageToPhotosAlbum({filePath:filePath,success(){uni.showToast({title:保存成功,icon:success});},fail(err){console.error(保存到相册失败:,err);uni.showToast({title:保存失败请稍后重试,icon:none});}});}