2009-07-31 8 views
0

Cela semble être une tâche très simple, alors supportez-moi. J'essaie d'étendre un serveur qui sert de fichiers et de pages Web. Actuellement, le serveur reçoit une requête HTTP, parse, et appelle une fonction appelée SENDFILE:servant un fichier png via ifstream

void sendFile(ostream& ostr, std::string filename) { 
    std::ifstream ifs(filename.c_str(), std::ios_base::binary); 
    ostr << ifs.rdbuf(); 
} 

Ce système fonctionne actuellement bien pour les fichiers texte comme javascript et css qui sont dans le même répertoire que le fichier binaire du serveur. Mais quand j'essaye de servir un dossier de png, le navigateur s'assied pour toujours. Il semble que la différence est que le fichier png n'est pas un fichier texte, mais si c'est effectivement le problème, que devrais-je utiliser à la place d'ifstream? Je vois que le drapeau binaire std :: ios_base :: est spécifié.

Merci!

Répondre

1

Vous devriez vraiment définir la longueur et le type mime dans les en-têtes http.

Questions connexes