ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Отдать файл из собственного обработчика
  • From: "Sergey S." <neavirc@xxxxxxxxx>
  • Date: Thu, 3 Apr 2008 07:46:53 -0700
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=gLR3ZDN9QPyrwGBxtBIL3VsK9NO5vQnSLjMYJ4Bwni4=; b=eNZlrtiXIHcBVm2mtzXHdCWlTyBVQnXDHT08dSEb17+nKSWr70zOt7bXssj4xLiBJFQ2YnmEuiMFyMhF5r0v+BEeMo8O/H9RcVaU8578xilQSMsxklJtdM36XBtTZie8kKlNp1S0SoQqwhGsqHq0KBw7GAuUjj6dKEhzvDNtTXg=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:to:subject:mime-version:content-type; b=BYK/AR1n3R/MP8+RQNDUIx7m3OqRcuoeWXV3Kr+b7lHUiqAQxqF3EyCNyqyq4Jd8LG1O+dbzPm2hYPBgtZ74OupQ/RpoRIOy/nWLkNAyGizxNbOSdfEwwvUEQJ3Rd6CpngQw936IwyDKXHizQbL31OS+sN+HAOLLp/mcJMFyiCM=

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

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

HTTP/1.x 200 OK

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

Спасибо.

/////////////////////////////////////////////////////////////////////////////////////////////
r->headers_out.content_type.len = sizeof("image/gif") - 1;
r->headers_out.content_type.data = "" *)"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);
///////////////////////////////////////////////////////////////////////////////////

--
С уважением,
Сергей Самохин.



 




Copyright © Lexa Software, 1996-2009.