Как прочитать Content-Type в файл в виде текста библиотекой fcgi2?

Есть библиотека FastCGI. Для её использования написал программу в Linux:

#include <fcgi_stdio.h>
#include <stdlib.h>

int main(void)
{

   int len = 0;
   
   while(FCGI_Accept() >= 0) {
      FILE * fp = fopen("/wwwdata/example.txt", "w+");
      char *content_type = getenv("CONTENT_TYPE");
      char *contentLength = getenv("CONTENT_LENGTH");       

      if (contentLength != NULL) 
          len = atoi(contentLength);            
      else 
        len = 0;        
    
      printf("Content-type: text/html\r\n"
           "\r\n"
           "<!DOCTYPE html><html><head><meta content='text/html;charset=utf-8' http-equiv='Content-Type'><meta charset='utf-8' http-equiv='encoding'><script type='text/javascript'>"
           "function f(){var x = new XMLHttpRequest();x.open('POST', '/i/a.out', true);x.timeout = 300000;"
            "var f = new FormData();"
            "f.append('f', window.document.getElementById('f').files[0]);"
            "x.send(f);"
           "}</script></head><body>"
           "<b>%d</b><input type='file' id='f' name='f' accept='image/png'><p onClick='f();'>PRESS!</p></body></html>\n"
           ,len);
  
      if (len > 0 && content_type != NULL)
        for(int i = 0; i < len; ++i)
            putc(content_type[i], fp);
    

      fclose(fp);
      FCGI_Finish();
    }    
  }

Страница запускается в Lighttpd. На вход подаётся PNG-файл, а программа в указанную папку, на которую у веб-сервера есть права, пишет файл с содержимым заголовка. Файл ненулевой длины записывается, но текстовый редактор пишет, что файл не распознаётся как текстовый. Что делаю не так?


Ответы (0 шт):