Dart wie man ein Bild hochlädt
Ich versuche ein Bild hochzuladen, hier ist der Code:
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>
Dann habe ich versucht, das neu gespeicherte Bild mit Win Photo Viewer zu öffnen, aber es heißt "Unterstützt dieses Dateiformat nicht", während ich den Inhalt des Originals sehen kann. Ich schätze, ich verwende nicht die richtige Methode, um die Bytes zu entschlüsseln (vielleicht nur eine Vermutung).
Könnt ihr mir einen Hinweis geben?
Entschuldigung für das schlechte Englisch.