1. 基本url方式下载(自定义下载文件名称)
downloadDailyYear: function() {
util.get(api.downloadDailyYear).then(function(res) { // 自定义get请求,可忽略
if (res.code == 200) {
var fileName = res.data.substring(res.data.lastIndexOf("/") + 1, res.data.indexOf("."));
wx.downloadFile({
url: api.appUrl + res.data,
// 1. 必须带有这个wx.env.USER_DATA_PATH,表示存储在用户本地 !!!
// fileName表示自定的文件名称
// 实际在PC端调试存储位置为类似 C:\Users\SJshe\AppData\Local\微信开发者工具\User Data\WeappFileSystem\o6zAJs3c0u3SeBVn_9MUgG6UZJ1M\wx2efdf4edd8bccb88
filePath: wx.env.USER_DATA_PATH + "/" + fileName,
success: function (res) {
if (res.statusCode === 200) {
wx.openDocument({
filePath: res.filePath,
fileType: ['xlsx'], // 2. 这个必须写合法类型,不然下载不了(个人认为官方应该特别说明) !!!
success: function (res) {
console.log('打开文档成功')
},
fail: function(e) {
console.log(e.errMsg);
}
})
}
},
fail: function(e) { // 强烈建议打印失败原因,便于排查
console.log(e.errMsg);
}
});
}
});
},
2. 基于后台返回流的方式下载
@GetMapping(value = "/downloadDailyYear")
public BaseResponse<byte[]> downloadDailyYear(HttpSession session, @RequestParam String id,
@RequestParam @DateTimeFormat(iso = ISO.DATE) Date startDate,
@RequestParam @DateTimeFormat(iso = ISO.DATE) Date endDate) {
}
public class BaseResponse<T> {
private String code;
private String message;
private T data;
...
}
downloadDailyYear: function () {
var name = '';
wx.getStorage({
key: 'userInfo',
success(res) {
name += res.data.name + res.data.employeeNo;
}
})
var year = new Date().getFullYear();
util.get(api.downloadDailyYear, {
'id': wx.getStorageSync('userId'),
'startDate': year + "-" + "01-01",
'endDate': year + "-" + "12-31"
}).then(function (res) {
if (res.code == 200) {
// 1. 必须带有这个wx.env.USER_DATA_PATH,表示存储在用户本地 !!!
var filePath = wx.env.USER_DATA_PATH + '/' + year + '工作周报-' + name;
FileSystemManager.writeFile({
filePath: filePath,
data: res.data,
encoding: 'base64', // 2. base64解密写入, 后台返回的byte[]数组是经过base64编码的,其他方式写入文件打开格式不对
success: function(res) {
wx.openDocument({
filePath: wx.env.USER_DATA_PATH + '/' + year + '工作周报-' + name,
fileType: ['xlsx'], // 3. 这个必须写合法类型,不然下载不了 !!!
success: function (res) {
console.log('打开文档成功')
},
fail: function (e) {
console.log(e.errMsg);
}
})
},
fail: function (e) {
console.log(e.errMsg);
}
});
}
});
},
欢迎关注微信公众号算法小生文章来源地址https://www.toymoban.com/news/detail-539610.html
文章来源:https://www.toymoban.com/news/detail-539610.html
到了这里,关于微信小程序文件下载两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!