Здравствуйте.<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>Разобрался, нужно было вот&nbsp; так:<br><br>/////////////////////////////////////////////////////&nbsp;</div>const char* path = &quot;/home/sergey/img.gif&quot;;<br><br>
struct stat file_info;<br>stat(path, &amp;file_info);<br><br>r-&gt;headers_out.status = NGX_HTTP_OK;<br>r-&gt;headers_out.content_type.len = strlen(&quot;image/gif&quot;);<br>r-&gt;headers_out.content_type.data = (u_char *)&quot;image/gif&quot;;<br>
r-&gt;headers_out.content_length_n = file_info.st_size;<br>ngx_http_send_header(r);<br><br>ngx_buf_t *b = static_cast&lt;ngx_buf_t*&gt;(ngx_create_temp_buf(r-&gt;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(&amp;file, b-&gt;pos, file_info.st_size, 0);<br>ngx_close_file(file.fd);<br>b-&gt;last = b-&gt;pos + file_info.st_size;<br><br>b-&gt;memory = 1;<br>b-&gt;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, &amp;out);<br>/////////////////////////////////////////////////////<br><br>--<br><div>С уважением,<br>Сергей Самохин. <br></div><br></div>