小程序上传图片upload拿到url(http://*)格式,然后调用uploadFile无法报错uploadFile:fail createUploadTask:fail file not found
无法排查出问题,希望能解决
小程序上传图片upload拿到url(http://*)格式,然后调用uploadFile无法报错uploadFile:fail createUploadTask:fail file not found
无法排查出问题,希望能解决
当遇到小程序中 uploadFile
方法报出 'file not found'
错误时,通常是因为提供给 uploadFile
方法的文件路径不正确或者文件确实不存在。以下是一些解决这个问题的步骤:
确保你传递给 uploadFile
的文件路径是正确的。在小程序中,文件路径可能是本地路径(如使用 wx.chooseImage
获取的图片路径)或者临时文件路径(如从网络下载的图片保存到本地后得到的路径)。
wx.chooseImage
或 wx.getFileSystemManager().readFile
等API获取的。如果你是在用户选择图片后上传,确保你使用了如 wx.chooseImage
这样的API来获取图片路径。例如:
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
const tempFilePaths = res.tempFilePaths
if (tempFilePaths.length > 0) {
const filePath = tempFilePaths[0] // 选择图片的返回相对路径
// 接下来可以使用 filePath 来进行 uploadFile
wx.uploadFile({
url: 'http://*****.com/upload', // 仅为示例,非真实的接口地址
filePath: filePath,
name: 'file',
formData: {
'user': 'test'
},
success (res) {
// do something with response
}
})
}
}
})
确保在调用 uploadFile
之前,文件没有被删除或移动。特别是如果文件是从网络下载的,确保下载完成并且文件确实存在于指定的路径中。
检查你的小程序是否有权限访问用户的相册或存储。在小程序的 app.json
中配置相应的权限请求。
uploadFile
之前,可以尝试使用 wx.getFileSystemManager().access
方法检查文件是否存在。wx.getFileSystemManager().access({
path: filePath,
success: function(res) {
console.log('文件存在');
// 调用 uploadFile
},
fail: function(err) {
console.error('文件不存在', err);
}
});
以上步骤应该能帮助你定位并解决 'file not found'
的问题。如果问题仍然存在,请检查具体的代码实现或提供更多的上下文信息以便进一步分析。
2 回答1.5k 阅读✓ 已解决
1 回答901 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
1 回答876 阅读✓ 已解决
1 回答824 阅读✓ 已解决
1 回答798 阅读✓ 已解决
2 回答372 阅读✓ 已解决