按照koa官方给的例子做文件上传失败,用koa做过文件上传的同学能传授下经验吗?
发布于 10 年前 作者 JerroldLee 8011 次浏览 最后一次编辑是 8 年前

按照官方给的这个例子去做https://github.com/koajs/examples/blob/master/upload/index.js 可是总是获取不到上传的内容,进入不到while里面:

app.use(function *(next){
  // ignore non-POSTs
  if ('POST' != this.method) return yield next;

  // multipart upload
  var parts = parse(this);
  var part;

  while (part = yield parts) {
    var stream = fs.createWriteStream('/tmp/' + Math.random());
    part.pipe(stream);
    console.log('uploading %s -> %s', part.filename, stream.path);
  }

  this.redirect('/');
});
11 回复

没有进到while里去就是 part = yield parts 没有值,你看看你上传的表单是否有问题

@littlehaker form表单也是仿照例子里写的,可是不知为什么就是不行

@littlehaker 能留个qq或邮箱不?想向你请教详细一点的问题

var parts = parse(this); 这句我觉得应该是yield parse(this)

确定是 this.method 而不是 this.request.method 么?

@gxmari007 官方是这么写的

@flex1988 这个地方是没问题的

我试了没有问题, 创建了tmp目录没?

@zestxjest 创建了,其实单个使用我试过也是没问题的,但整合进项目的时候有问题,找不出原因,所以希望有人可以指点一下

@JerroldLee DEBUG一下, 看看this的区别.

回到顶部