files = ctx.request.files //获取前段表单上传的file对象
const request = require('request');
const path = require('path');
const fs= require('fs');
static async getMediaid(files){
/**
*上传本地
*/
const file = files.file;
if(super.empty(file)){
super.APIErr('1004', "参数错误")
}
const allow = ["jpg", "png", "jpeg","gif"];
let ext = file.name.split('.')[1]
if(allow.indexOf(ext)<0){
super.APIErr('1004', "上传格式不被允许")
}
let reader = fs.createReadStream(file.path);
let newFilename = super.timestamp() + '.' + file.name.split('.')[1];
//先上传图片到本机服务器
const upStream = fs.createWriteStream(path.join(`${config.rootPath}/public/media`, newFilename));
reader.pipe(upStream);
let file_path = path.resolve(config.rootPath, "public/media/"+newFilename);
let accesstoken = await this.getAccessToken();
let api = `https://api.weixin.qq.com/cgi-bin/media/upload?access_token=${accesstoken}&type=image`
return new Promise((resolve, reject) => {
request.post({
url:api,
formData: {
buffer: {
value: fs.readFileSync(file_path),
options: {
filename: '1.png',
contentType: 'image/png'
}
}
}
},function optionalCallback(err, httpResponse, body) {
if (err) {
reject(err)
}
resolve(JSON.parse(body))
});
})
}