Znalazłem kilka fajnych samouczków na kliencie/serwerze w Dart. Klient po prostu wysyła żądanie do serwera za pośrednictwem localhost na określonym porcie, a serwer po prostu odpowiada ciągiem.Serwer klienta w Dart
Jednak nie znalazłem żadnej pomocy w obsłudze zdjęć. Chcę być w stanie uzyskać serwer obrazów serwera do klienta. Na przykład, jeśli klient wykonuje żądanie takie jak: localhost: 1313/Images, serwer powinien odpowiedzieć stroną wyświetlającą wszystkie obrazy znajdujące się w folderze "images".
Oto kod mam tak daleko:
import 'dart:io';
class Server {
_send404(HttpResponse res){
res.statusCode = HttpStatus.NOT_FOUND;
res.outputStream.close();
}
void startServer(String mainPath){
HttpServer server = new HttpServer();
server.listen('localhost', 1111);
print("Server listening on localhost, port 1111");
server.defaultRequestHandler = (var req, var res) {
final String path = req.path == '/' ? '/index.html' : req.path;
final File file = new File('${mainPath}${path}');
file.exists().then((bool found) {
if(found) {
file.fullPath().then((String fullPath) {
if(!fullPath.startsWith(mainPath)) {
_send404(res);
} else {
file.openInputStream().pipe(res.outputStream);
}
});
} else {
_send404(res);
}
});
};
void main(){
Server server = new Server();
File f = new File(new Options().script);
f.directory().then((Directory directory) {
server.startServer(directory.path);
});
}
nie zostały jeszcze wdrożone klienta, ale jest to konieczne do wdrożenia klienta? Czy przeglądarka nie jest wystarczająca jako klient?
Co muszę zrobić, aby serwer wyświetlał obrazy?
Czy chcesz wyświetlić listę nazw plików obrazów lub same zdjęcia? W tym drugim przypadku musisz zrobić jakiś szablon HTML. – tjameson