这似乎是一项非常简单的任务,所以请耐心等待。我正在尝试扩展一个提供文件和网页的服务器。目前,服务器获取HTTP请求,解析它,并调用名为sendFile的函数:
void sendFile(ostream& ostr, std::string filename) {
std::ifstream ifs(filename.c_str(), std::ios_base::binary);
ostr << ifs.rdbuf();
}
此方案目前适用于javascript和css等文本文件,这些文件与服务器二进制文件位于同一目录中。但是当我尝试提供png文件时,浏览器永远存在。看起来不同的是png文件不是文本文件,但如果这确实是问题,我应该使用什么而不是ifstream?我看到指定了std :: ios_base :: binary标志。
谢谢!
答案 0 :(得分:1)
你真的应该在http标题中设置长度和mime类型。