node 企业微信上传临时素材44001错误?
发布于 6 年前 作者 ryu 2112 次浏览 来自 官方Issues

使用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: {
        }
    });
});
1 回复
先改成这个试试 form.append('media', file)
回到顶部