1

途方に暮れています。最近、Express 4 アプリがアップロードを停止しました。ファイルをアップロードしようとすると、「Uploading: 0%」という結果になり、そこにハングアップし、以下のイベントが発生しないため、エラーが発生することさえありません。

router.post('/uploader', function(req, res){
  var form,realFileName;
  form = formidable.IncomingForm();
  form.uploadDir = path.join(__dirname, '../' + opts.uploadDir);
  form.maxFieldsSize = 1000 * 1024 * 1024;
  form.keepExtensions = true;
  form.type = 'multipart';

  form.on('fileBegin', function(err, file){
    file.path = form.uploadDir + "/" + file.name;
    realFileName = file.name;
  });

  form.on('file',function(name, file){
  });

  form.on('error', function(err){
    res.render('uploader',{title: 'Upload Error'});
  });

  form.on('end', function (err, file){
    res.render('uploader',{title: 'Upload Success'});
  });
//res.render('uploader',{title: 'Upload Success'});
});

形:

<form action="/uploader" method="post" enctype="multipart/form-data">
  <input type="hidden" name="MAX_FILE_SIZE" value="104857600">
  <input type="file" name="uploadCsv">
  <input type="submit" value="Upload CSV">
</form>
4

1 に答える 1

1

form.parse(req);イベントを設定したら、次のように呼び出す必要があります。

form.on('end', function (err, file){
  res.render('uploader', {title: 'Upload Success'});
});

// --> Missing: "Start parsing the form":
form.parse(req);

完全な例については、 Formidable の例を参照してください。

于 2014-07-18T22:47:33.467 に答える