这似乎是一项非常简单的任务,所以请耐心等待。我正在尝试扩展提供文件和网页的服务器。当前服务器获取一个 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 标志。
谢谢!
最佳答案
您确实应该在 http header 中设置长度和 mime 类型。
关于c++ - 通过 ifstream 提供一个 png 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210149/