Re: Отдать файл из собственного обработчика
Sergey S.
neavirc at gmail.com
Fri Apr 4 14:55:47 MSD 2008
Здравствуйте.
Пытаюсь отдать файл из своего обработчика, но, вероятно, что-то делаю
> неправильно; от сервера приходит только
>
> HTTP/1.x 200 OK
>
> Не подскажите куда копать?
Разобрался, нужно было вот так:
/////////////////////////////////////////////////////
const char* path = "/home/sergey/img.gif";
struct stat file_info;
stat(path, &file_info);
r->headers_out.status = NGX_HTTP_OK;
r->headers_out.content_type.len = strlen("image/gif");
r->headers_out.content_type.data = (u_char *)"image/gif";
r->headers_out.content_length_n = file_info.st_size;
ngx_http_send_header(r);
ngx_buf_t *b = static_cast<ngx_buf_t*>(ngx_create_temp_buf(r->pool,
file_info.st_size));
ngx_file_t file;
file.fd = ngx_open_file(path, NGX_FILE_RDONLY, NGX_FILE_OPEN, 0);
ngx_read_file(&file, b->pos, file_info.st_size, 0);
ngx_close_file(file.fd);
b->last = b->pos + file_info.st_size;
b->memory = 1;
b->last_buf = 1;
ngx_chain_t out;
out.buf = b;
out.next = NULL;
return ngx_http_output_filter(r, &out);
/////////////////////////////////////////////////////
--
С уважением,
Сергей Самохин.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080404/196a69ef/attachment.html>
More information about the nginx-ru
mailing list