http_send_file
(PECL pecl_http >= 0.1.0)
http_send_file — Send file
Описание
$file
)Sends a file with support for (multiple) range requests.
This functions behaviour and further action is dependent on the following INI-опциюs: http.send.not_found_404 и http.log.not_found.
If the INI-опцию http.send.not_found_404
is enabled and the INI-опцию http.log.not_found
points to a writable file, a log message is written when the file
was not found.
Список параметров
-
file
-
the file to send
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примеры
Пример #1 A http_send_file() example
<?php
http_send_content_disposition("document.pdf", true);
http_send_content_type("application/pdf");
http_throttle(0.1, 2048);
http_send_file("../report.pdf");
?>
Результат выполнения данного примера:
HTTP/1.1 206 Partial Content X-Powered-By: PHP/5.2.2 Accept-Ranges: bytes Content-Length: 12345 Content-Range: bytes 0-12344 Content-Type: application/pdf Content-Disposition: inline; filename="document.pdf" %PDF...
Смотрите также
- http_send_data() - Send arbitrary data
- http_send_stream() - Send stream
- http_throttle() - HTTP throttling
- http_send_content_type() - Send Content-Type
- http_send_content_disposition() - Send Content-Disposition
- класс HttpResponse если вы используете PHP 5.1.0 и выше
- http_cache_etag
- http_cache_last_modified
- http_chunked_decode
- http_deflate
- http_inflate
- http_build_cookie
- http_date
- http_get_request_body_stream
- http_get_request_body
- http_get_request_headers
- http_match_etag
- http_match_modified
- http_match_request_header
- http_support
- http_negotiate_charset
- http_negotiate_content_type
- http_negotiate_language
- ob_deflatehandler
- ob_etaghandler
- ob_inflatehandler
- http_parse_cookie
- http_parse_headers
- http_parse_message
- http_parse_params
- http_persistent_handles_clean
- http_persistent_handles_count
- http_persistent_handles_ident
- http_get
- http_head
- http_post_data
- http_post_fields
- http_put_data
- http_put_file
- http_put_stream
- http_request_body_encode
- http_request_method_exists
- http_request_method_name
- http_request_method_register
- http_request_method_unregister
- http_request
- http_redirect
- http_send_content_disposition
- http_send_content_type
- http_send_data
- http_send_file
- http_send_last_modified
- http_send_status
- http_send_stream
- http_throttle
- http_build_str
- http_build_url
Коментарии
This function does not work together nicely with output buffering (ob_start etc.). If you get memory allocation errors, it probably means that you have got output buffering turned on and you should turn off output buffering.
<?php
http_send_content_disposition("document.pdf", true);
http_send_content_type("application/pdf");
http_throttle(0.1, 2048);
http_send_file("../report.pdf");
?>
None of the function above works with pecl_http 2.3 , I kept on getting Fatal error: Call to undefined function http_send_content_disposition() in xxxxxxx , I dont know ,but maybe its a bug in php 5.4 with centos 6.4 , The solution was just simple, I removed pecl_http 2.3 and installed Pecl_http package to 1.7.6 using the command below :
pecl remove pecl_http
pecl install http://pecl.php.net/get/pecl_http-1.7.6.tgz
Above mentioned example is for version 1.
If you want an working example for v2 see devel-m6w6.rhcloud.com/mdref/http/Env/Response/setContentDisposition
Because windows.php.net/downloads/pecl/releases/http/ stores only v2 versions, all http plugin related function pages at php.net/manual/en/book.http.php should contain the following with big red bloody font:
THIS IS DOCUMENTATION FOR V1 WHICH WE DO NOT SUPPORT ANYMORE. SEE devel-m6w6.rhcloud.com/mdref/http FOR UPDATED DOCUMENTATION. Note: Functions are available by clicking subelements under http at tree which is positioned at right top position.