Отдать файл из собственного обработчика

Sergey S. neavirc at gmail.com
Thu Apr 3 18:46:53 MSD 2008


Здравствуйте.

Пытаюсь отдать файл из своего обработчика, но, вероятно, что-то делаю
неправильно; от сервера приходит только

HTTP/1.x 200 OK

Не подскажите куда копать?

Спасибо.

/////////////////////////////////////////////////////////////////////////////////////////////
r->headers_out.content_type.len = sizeof("image/gif") - 1;
r->headers_out.content_type.data = (u_char *)"image/gif";

ngx_file_t file;
file.fd = ngx_open_file("/home/sergey/img.gif", NGX_FILE_RDONLY,
NGX_FILE_OPEN, 0);

struct stat file_info;
stat("/home/sergey/img.gif", &file_info);
int file_size = file_info.st_size;

ngx_buf_t* b = static_cast<ngx_buf_t*>(ngx_pcalloc(r->pool, file_size));
ngx_read_file(&file, b->pos, b->end - b->last, 0);
ngx_close_file(file.fd);

ngx_chain_t out;
out.buf = b;
out.next = NULL;

b->memory = 1;
b->last_buf = 1;

r->headers_out.status = NGX_HTTP_OK;
r->headers_out.content_length_n = file_size;

ngx_http_send_header(r);

return ngx_http_output_filter(r, &out);
///////////////////////////////////////////////////////////////////////////////////

--
С уважением,
Сергей Самохин.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080403/41d8bcae/attachment.html>


More information about the nginx-ru mailing list