收藏
回答

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: {
        }
    });
});
最后一次编辑于  03-11
回答关注问题邀请回答
收藏

1 个回答

  • undefined
    undefined
    03-11
    先改成这个试试 form.append('media', file)
    


    03-11
    赞同
    回复 2
    • 桦桦
      桦桦
      03-11
      改了没有效果,我把filename、filelength也加上了一样
      03-11
      回复
    • undefined
      undefined
      03-11回复桦桦
      我用了request库,axios我再研究研究
      03-11
      回复
登录 后发表内容
问题标签