salkuadrat/lucifer

File uploads do not work as documentation examples shows

Opened this issue · 0 comments

at https://pub.dev/packages/lucifer#file-uploads
the documentation says
second example:

final app = App();
final form = app.form();

app.post('/upload', (Req req, Res res) async {
  await form
    .onField((name, field) {
      print('${name} ${field}');
    })
    .onFile((name, file) {
      print('${name} ${file.filename}');
    })
    .onError((error) {
      print('$error');
    })
    .onEnd(() {
      res.end();
    })
    .parse(req);
});

or third example:

final app = App();
final form = app.form();

app.post('/upload', (Req req, Res res) async {
  await form
    .on('field', (name, field) {
      print('${name} ${field}');
    })
    .on('file', (name, file) {
      print('${name} ${file}');
    })
    .on('error', (error) {
      print('$error');
    })
    .on('end', () {
      res.end();
    })
    .parse(req);
});

in both cases onFile and on('file' ...) are not triggered.

in .pub-cache/hosted/pub.dartlang.org/lucifer-1.0.7/lib/src/parsers/form_parser.dart line 76 / 78 listener is always null.

The first example doesn't work either


final app = App();
final form = app.form();

app.post('/upload', (Req req, Res res) async {
  await form.parse(req, (error, fields, files) {
    if (error) {
      print('$error');
    }

    print(fields);
    print(files);
  });
});

the line if (error) {. should be if (error != null) {