Dart como subir una imagen.

Estoy tratando de subir una imagen, aquí está el código:

server.dart

import 'dart:io';

void main() {
  HttpServer.bind('127.0.0.1', 8080)
    .then((HttpServer server) {
      server.listen((HttpRequest request) {
        if (request.method.toLowerCase() == 'post') {
          request.fold(new BytesBuilder(), (builder, data) => builder..add(data))
          .then((BytesBuilder builder) {
            File file = new File('abc.jpg');
            file.writeAsBytes(builder.takeBytes(), mode: FileMode.WRITE)
              .then((_) {
                request.response.close();
              });
          });
        } else {
          File f = new File('test_1.html')
              ..openRead().pipe(request.response);
        }
      });
    });
}

test_1.html

<!DOCTYPE html>

<html>
  <head>
    <title>test_1</title>
  </head>

  <body>
    <form method="post" enctype="multipart/form-data">
      <input id="fileupload" name="myfile" type="file" placeholder="some file here..."/>
      <input type="submit" />
    </form>
  </body>
</html>

Luego traté de abrir la imagen recién guardada usando el visor de fotos de Windows, pero dice "no es compatible con este formato de archivo" mientras puedo ver el contenido del original. Así que supongo que no estoy usando el método correcto para decodificar los bytes (tal vez, solo una suposición).

¿Pueden ustedes darme una pista?

Lo siento por el mal inglés.

Respuestas a la pregunta(1)

Su respuesta a la pregunta