ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
369
369
EMPFEHLEN
-
16.09.10 18:16 #1t0day Tutorials.de Gastzugang
Moin,
aktuell schreibe ich mir einen Simplen Webserver. HTML funktioniert ohne Probleme (Ist ja auch nicht sonderlich schwer, das zum laufen zu bringen), doch bei dateien, die Binär gesendet werden müssen, habe ich ein Problem:
Mein Aktueller Code für HTML/Textdateien:
file = ifstream, Datei die der Browser haben will
body = std::string, Inhalt der Nachricht: Server -> Browser ohne HTTP-Header
Code :1 2 3 4 5 6 7 8
vector<string> v; string line; string buf(""); while(getline(file, line)) v.push_back(line); for(int i =0;i <v.size(); i++) buf += v[i]; body += buf;
Dies funktioniert leider nicht mit Binären Dateien, wie z.B. einem Bild. Hat jemand einen Vorschlag wie ich dies lösen kann?
-
Hallo,
findest du dein Vorgehen nicht etwas umständlich? Erst zerlegst du die Datei in Zeilen und legst diese in einem Vector ab. Anschließend baust du die Zeilen in einer temporären Variable (buf) wieder zusammen (und verlierst damit im übrigen sämtliche Zeilenumbrüche – vermutlich auch das Problem bei Binärdateien) und hängst das Ergebnis dann an body an.
Lies die Datei stattdessen direkt ein:
Code cpp:1 2 3 4 5 6 7 8
file.seek(0, ios::end); int length = file.tellg(); file.seek(0, ios::beg); char *buf = new char[length]; file.read(buf, length); body.append(buf, length); delete[] buf;
Allerdings funktioniert das nur für kleine Dateien gut, da der komplette Inhalt mindestens zweimal in den Hauptspeicher passen muss. Wieso speicherst du den Body überhaupt zwischen?
Grüße,
Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
Ähnliche Themen
-
Dateien über HTTP versenden
Von takidoso im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 3Letzter Beitrag: 14.12.06, 14:24 -
Dateien versenden via Winsock
Von flotzi182 im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 12.05.06, 20:34 -
LAN Dateien versenden
Von Dark Ranger im Forum Visual Basic 6.0Antworten: 22Letzter Beitrag: 22.10.05, 12:44 -
Dateien versenden mittels HTTPS
Von takidoso im Forum .NET ArchivAntworten: 0Letzter Beitrag: 26.07.05, 10:32 -
EXE-Dateien in Outlook als Anhang versenden
Von Maximus im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 24.07.03, 14:21





Zitieren

Login






