微信小程序wx.downloadFile报错 no such file or directory
function down_file() {
var _this = this;
var path = wx.getStorageSync('savedFilePath')
if(path) {
console.log(path)
accessFile(path)
return
}
const downloadTask=wx.downloadFile({
// url: 'https://img1.baidu.com/it/u=2587712331,3494235667&fm=253&fmt=auto&app=120&f=JPEG?w=320&h=180',
url: 'http://yd.m2_api.*******.cc:8180/smLogger?do=downLoad',
success: function (res) {
// 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
if(res.statusCode === 200){
wx.saveFile({
tempFilePath: res.tempFilePath,
success (res) {
wx.setStorageSync('savedFilePath', res.savedFilePath)
accessFile(res.savedFilePath)
},
fail(err) {
console.log(err)
}
})
}
},
fail:function(err) {
console.log(err)
}
})
downloadTask.onProgressUpdate((res) => {
console.log('下载进度', res.progress)
console.log('已经下载的数据长度', res.totalBytesWritten)
console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})
}
前几次调用接口时正常下载,后面开始报错
根据报错信息发现是该路径下没有tmp文件夹,导致错误,所以在该路径下创建了tmp文件,可成功下载
mac创建该文件时注意有个空格需要转码
创建之后就可以正常调用啦
还有一个注意点就是,不要清缓存,清除之后需要重新创建tmp文件夹,但是在调试器清除storage不会影响
目前微信官方说在一个预发布版本已解决此bug