node 企业微信上传临时素材44001错误?
使用node做中转上传企业微信临时素材。上传报44001,返回结果如下(上传普通的jpg/png)
实现关键代码:
let fs = require('fs');
let express = require('express');
let app = express();
let formidable = require('formidable');
const FormData = require('form-data');
var axios = require('axios');
// 上传文件方法
function upladFile(file, { url, onload, onerror, params }) {
const form = new FormData(); // FormData 对象
// Add multipart params, 必须放在file之前
for (const key in params) {
form.append(key, params[key]);
}
// 要放在其他参数后面
form.append('file', file); // 文件对象
// 用户购买相关页面需要做网页授权,获取用户信息
axios({
url: url,
method: 'post',
data: form,
headers: form.getHeaders()
// headers: {
// 'Content-Type': 'multipart/form-data'
// }
})
.then(res => {
onload && onload(res.data);
})
.catch(err => {
onerror && onerror(err);
})
}
// 其他代码
fs.readFile(file.path, function(err, data) {
// 上传到企业微信
upladFile(data, {
url: `https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=${result.access_token}&type=image`,
onload: function(e) {
console.log('上传完毕');
},
onerror: function(e) {
console.log('上传错误')
},
params: {
}
});
});