Здравствуйте.<br><br><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Пытаюсь отдать файл из своего обработчика, но, вероятно, что-то делаю неправильно; от сервера приходит только<br>
<br>HTTP/1.x 200 OK
<br><br>Не подскажите куда копать?</blockquote><div><br><br>Разобрался, нужно было вот так:<br><br>///////////////////////////////////////////////////// </div>const char* path = "/home/sergey/img.gif";<br><br>
struct stat file_info;<br>stat(path, &file_info);<br><br>r->headers_out.status = NGX_HTTP_OK;<br>r->headers_out.content_type.len = strlen("image/gif");<br>r->headers_out.content_type.data = (u_char *)"image/gif";<br>
r->headers_out.content_length_n = file_info.st_size;<br>ngx_http_send_header(r);<br><br>ngx_buf_t *b = static_cast<ngx_buf_t*>(ngx_create_temp_buf(r->pool, file_info.st_size));<br>ngx_file_t file;<br>file.fd = ngx_open_file(path, NGX_FILE_RDONLY, NGX_FILE_OPEN, 0);<br>
ngx_read_file(&file, b->pos, file_info.st_size, 0);<br>ngx_close_file(file.fd);<br>b->last = b->pos + file_info.st_size;<br><br>b->memory = 1;<br>b->last_buf = 1;<br><br>ngx_chain_t out;<br>out.buf = b;<br>
out.next = NULL;<br><br>return ngx_http_output_filter(r, &out);<br>/////////////////////////////////////////////////////<br><br>--<br><div>С уважением,<br>Сергей Самохин. <br></div><br></div>