通过C中的http提供非文本文件

时间:2014-06-11 11:29:12

标签: c http

我在C中有一个小的Web服务器,当它必须提供html或css文件时工作正常。但是当谈到非文本文件(图像,压缩文件等)时,客户端收到的数据会被破坏,无法显示。

来自服务器的响应如下:

HTTP/1.1 200 OK
Date: Wed, 11 Jun 2014 11:24:27 GMT
Server: MacFly/0.1.1
Cache-Control: max-age=60
Expires: Wed, 11 Jun 2014 11:25:27 GMT
Last-Modified: Wed, 11 Jun 2014 06:13:38 GMT
ETag: "1041463782"
Content-Length: 36851
Content-Type: image/jpeg

���

最后一行对应于损坏的数据。 为了生成数据,我使用以下函数读取所需文件(任何格式:html,css,jpg等)并将其保存在file_contents中:

void get_content(const char * filename, char * file_contents) {
    FILE * file;
    int file_size;

    file_size = get_file_size(filename);

    if (file = fopen(filename, "rb")) {
        fread(file_contents, sizeof(char), file_size-1, file);
        fclose(file);
    }
}

0 个答案:

没有答案