后台写法:
const uploadData= async function (ctx) {
console.log('book controller')
if ('POST' !== ctx.method) return await next();
const file = ctx.request.files.file;
const reader = fs.createReadStream(file.path);
const stream = fs.createWriteStream(path.join(os.tmpdir(), Math.random().toString()));
reader.pipe(stream);
console.log('uploading %s -> %s', file.name, stream.path);
const data = ctx.request.body;
data.book_path = stream.path;
console.log('path',stream.path);
console.log('data', data);
const success = await EBookModel.createBook(data)
ctx.redirect('/');
ctx.body = {
success
}
}
关键点:通过ctx 读取到前端的上传文件:
const file = ctx.request.files.file;
前端:需要按照正确的数据格式传到后端,后端才能够进行解析;
通常 可以在Network中看到这样的上传数据示例

对于一个formData中含有多个文件的情况:
网友评论