微信小程序wx.uploadFile的两个坑

setImage:function(e){
var _this = this  //坑1
wx.chooseImage({
count: 1,
sizeType: [‘original’, ‘compressed’],
sourceType: [‘album’, ‘camera’],
success: function (res) {
var tempFilePaths = res.tempFilePaths
console.log(tempFilePaths)
wx.uploadFile({
url: app.globalData.myhost+‘customer-header?access_token=’+app.globalData.itoken,
filePath: tempFilePaths[0],
name: ‘uploadFile’,
formData: {
‘userId’: app.globalData.iuserId
},
success: function (res) {var data = JSON.parse(res.data)  //坑2:与wx.request不同,wx.uploadFile返回的是[字符串],需要自己转为JSON格式
console.log(‘上传成功’)
_this.setData({    //坑1:wx.uploadFile本身有一个this,所以要通过外部var _this = this 把this带进来
headerImageUrl: data.headerImageUrl
})
console.log(‘刷新成功’)
}
})
}
})
},

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个示例代码,用于在微信小程序中使用 `wx.uploadFile` 方法上传CSV文件: ```javascript // 导出文件 function exportCSV(data, filename) let csv = ''; // 构造CSV内容 data.forEach((row) => { csv += row.join(',') + '\r\n'; }); // 创建并上传文件 wx.showLoading({ title: '导出中...', }); wx.getFileSystemManager().writeFile({ filePath: wx.env.USER_DATA_PATH + '/' + filename, data: csv, encoding: 'utf8', success: function (res) { // 上传文件 wx.uploadFile({ url: 'YOUR_UPLOAD_URL', filePath: res.savedFilePath, name: 'file', formData: { 'user': 'test' }, success: function (res) { wx.hideLoading(); console.log(res.data); wx.showToast({ title: '上传成功', icon: 'success', }); }, fail: function (error) { wx.hideLoading(); console.log(error); wx.showToast({ title: '上传失败', icon: 'none', }); }, }); }, fail: function (error) { wx.hideLoading(); console.log(error); }, }); } // 示例用法 let data = [ ['姓名', '年龄', '性别'], ['张三', '18', '男'], ['李四', '20', '女'], ['王五', '22', '男'], ]; let filename = 'data.csv'; exportCSV(data, filename); ``` 在上述代码中,`exportCSV`函数接收两个参数:数据(二维数组)和文件名。它会将数据转换为CSV格式的字符串,然后使用微信小程序的文件系统管理器将该字符串写入文件。在成功写入文件后,调用 `wx.uploadFile` 方法将文件上传至指定的URL。 请注意,示例中的 `YOUR_UPLOAD_URL` 需要替换为你自己的上传URL。 以上示例代码是一个简单的实现,你可以根据自己的需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值