c++ - 通过 ifstream 提供一个 png 文件

标签 c++ http

这似乎是一项非常简单的任务,所以请耐心等待。我正在尝试扩展提供文件和网页的服务器。当前服务器获取一个 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/

相关文章:

c++ - CUDA:请帮我找出代码中的错误

c++ - 在 libavformat 中设置 "re"标志

c# - 透明代理 - 从端口 80 到 443

asp.net-mvc - 如何使操作过滤器导致过滤后的操作返回 HttpNotFoundResult?

python - 如何在 C++ 中使用 CPR 库?

c++ - (Visual Studio) 尝试将 Microsoft 库与 SFML 库静态链接时出现大量链接器错误

c++ - 如何验证中间CA

c++ - QTreeView:多级列的层次上下文

http - 我如何在 Go 中使用不记名 token 发出请求

c# - 通过 Fiddler 向 asp.net mvc 操作发送 POST 请求