我的服务器端 Dart Web 应用程序为某些请求提供图像文件。
简化,这是它目前所做的:
HttpServer.bind(InternetAddress.ANY_IP_V4, 80)
.then((HttpServer server) {
server.listen((HttpRequest request) {
request.response.statusCode = HttpStatus.OK;
request.response.headers.contentType = ContentType.parse("image/jpg");
var file = new File("C:\\images\\myImage.jpg");
file.readAsBytes().then((List<int> bytes) {
bytes.forEach((int b) => request.response.writeCharCode(b)); // slow!
request.response.close();
});
}
}
这行得通,但它相当慢,我怀疑通过单独写入每个字节HttpResponse.writeCharCode
是在这里减慢速度的原因。
不幸的是,没有像HttpResponse.writeAllCharCodes
这样的东西。有writeAll,但它调用字节数组的每个元素——我们需要写入原始字节。toString()
有什么建议么?