外面有个upimg方法
qn.upImg = (temporaryImg) => {
let config = new qiniu.conf.Config()
config.zone = qiniu.zone.Zone_z2 // 空间对应机房
let formUploader = new qiniu.form_up.FormUploader(config) // 生成表单上传的类
let putExtra = new qiniu.form_up.PutExtra() // 生成表单提交额外参数
let localFile = '/Users/zzz/Desktop/mac/unit/moon/' + temporaryImg
let key = temporaryImg // 重命名文件
/**
* 上传本地文件
* @param uploadToken 上传凭证
* @param key 目标文件名
* @param localFile 本地文件路径
* @param putExtra 额外选项
* @param callback
*/
return new Promise ((resolve, reject) => {
formUploader.putFile(uploadToken, key, localFile, putExtra, function (respErr, respBody, respInfo) {
console.log('respErr : ' + respErr, 'respBody : ' + JSON.stringify(respBody), 'respInfo' + JSON.stringify(respInfo))
if (respErr) {
reject(JSON.stringify(respErr))
}
if (respInfo.statusCode == 200) {
resolve(JSON.stringify(respBody))
} else {
resolve(JSON.stringify(respBody))
}
})
})
}
这里是接口
router.post('/upload', async (ctx, next) => {
let temporaryImg = new Date().getTime() + '.jpeg'
// fs.writeFileSync 还有一个这个方法,说是同步方法
fs.writeFile(temporaryImg, dbuff, function (err) {
if (err) {
} else {
// 想在这里调用qn.Img方法, 但是怎么都不成功
}
})
// 这样调用可以返回值给前端, 但是有问题。
await qn.upImg(temporaryImg).then(res => {
ctx.response.body = {
msg: '操作成功',
data: res,
code: 200
}
})
})
想在写入文件成功之后进行文件的上传操作,请问应该怎么写啊?
可以这样试一下