Koa2上传文件流

2019-04-08  本文已影响0人  美食家儿菜

点击查看官方示例

后台写法:
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中看到这样的上传数据示例


上传数据.png

对于一个formData中含有多个文件的情况:

上一篇 下一篇

猜你喜欢

热点阅读