本文整理汇总了PHP中Ak::mime_content_type方法的典型用法代码示例。如果您正苦于以下问题:PHP Ak::mime_content_type方法的具体用法?PHP Ak::mime_content_type怎么用?PHP Ak::mime_content_type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ak
的用法示例。
在下文中一共展示了Ak::mime_content_type方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setContentTypeForFormat
public function setContentTypeForFormat($format)
{
if (!empty($format)) {
$mime_type = Ak::mime_content_type('file.' . $format);
if (!empty($mime_type)) {
$this->addHeader('Content-Type', $mime_type);
}
}
}
示例2: sendFile
/**
* Sends the file by streaming it 4096 bytes at a time. This way the
* whole file doesn't need to be read into memory at once. This makes
* it feasible to send even large files.
*
* Be careful to sanitize the path parameter if it coming from a web
* page. sendFile($params['path']) allows a malicious user to
* download any file on your server.
*
* Options:
* * <tt>filename</tt> - suggests a filename for the browser to use.
* Defaults to realpath($path).
* * <tt>type</tt> - specifies an HTTP content type.
* Defaults to 'application/octet-stream'.
* * <tt>disposition</tt> - specifies whether the file will be shown inline or downloaded.
* Valid values are 'inline' and 'attachment' (default).
* * <tt>stream</tt> - whether to send the file to the user agent as it is read (true)
* or to read the entire file before sending (false). Defaults to true.
* * <tt>buffer_size</tt> - specifies size (in bytes) of the buffer used to stream the file.
* Defaults to 4096.
*
* The default Content-Type and Content-Disposition headers are
* set to download arbitrary binary files in as many browsers as
* possible. IE versions 4, 5, 5.5, and 6 are all known to have
* a variety of quirks (especially when downloading over SSL).
*
* Simple download:
* sendFile('/path/to.zip');
*
* Show a JPEG in browser:
* sendFile('/path/to.jpeg', array('type' => 'image/jpeg', 'disposition' => 'inline'));
*
* Read about the other Content-* HTTP headers if you'd like to
* provide the user with more information (such as Content-Description).
* http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
*
* Also be aware that the document may be cached by proxies and browsers.
* The Pragma and Cache-Control headers declare how the file may be cached
* by intermediaries. They default to require clients to validate with
* the server before releasing cached responses. See
* http://www.mnot.net/cache_docs/ for an overview of web caching and
* http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
* for the Cache-Control header spec.
*/
function sendFile($path, $options = array())
{
$path = realpath($path);
if (!file_exists($path)) {
trigger_error(Ak::t('Cannot read file %path', array('%path' => $path)), E_USER_NOTICE);
return false;
}
$options['length'] = empty($options['length']) ? filesize($path) : $options['length'];
$options['filename'] = empty($options['filename']) ? basename($path) : $options['filename'];
$options['type'] = empty($options['type']) ? Ak::mime_content_type($path) : $options['type'];
$this->performed_render = false;
$this->_sendFileHeaders($options);
if (!empty($options['stream'])) {
require_once AK_LIB_DIR . DS . 'AkStream.php';
$this->render(array('text' => new AkStream($path, $options['buffer_size'])));
} else {
$this->render(array('text' => Ak::file_get_contents($path)));
}
}
示例3: test_mime_type_detection
public function test_mime_type_detection()
{
// png is not in any RFC so we might want to check if it has a /x- preffix for non standard values
$this->assertTrue(in_array(Ak::mime_content_type(AK_PUBLIC_DIR . DS . 'images' . DS . 'akelos_framework_logo.png'), array('image/png', 'image/x-png')));
$this->assertEqual(Ak::mime_content_type('C:\\Folder\\image.png'), 'image/png');
}
示例4: sendFile
/**
* Sends the file by streaming it 4096 bytes at a time. This way the
* whole file doesn't need to be read into memory at once. This makes
* it feasible to send even large files.
*
* Be careful to sanitize the path parameter if it coming from a web
* page. sendFile($params['path']) allows a malicious user to
* download any file on your server.
*
* Options:
* * <tt>filename</tt> - suggests a filename for the browser to use.
* Defaults to realpath($path).
* * <tt>type</tt> - specifies an HTTP content type.
* Defaults to 'application/octet-stream'.
* * <tt>disposition</tt> - specifies whether the file will be shown inline or downloaded.
* Valid values are 'inline' and 'attachment' (default).
* * <tt>stream</tt> - whether to send the file to the user agent as it is read (true)
* or to read the entire file before sending (false). Defaults to true.
* * <tt>buffer_size</tt> - specifies size (in bytes) of the buffer used to stream the file.
* Defaults to 4096.
* <tt>:x_sendfile</tt> - uses X-Sendfile to send the file when set to +true+. This is currently
only available with Lighttpd/Apache2 and specific modules installed and activated. Since this
* uses the web server to send the file, this may lower memory consumption on your server and
* it will not block your application for further requests.
* See http://blog.lighttpd.net/articles/2006/07/02/x-sendfile and
* http://tn123.ath.cx/mod_xsendfile/ for details. Defaults to +false+.
*
* The default Content-Type and Content-Disposition headers are
* set to download arbitrary binary files in as many browsers as
* possible. IE versions 4, 5, 5.5, and 6 are all known to have
* a variety of quirks (especially when downloading over SSL).
*
* Simple download:
* sendFile('/path/to.zip');
*
* Show a JPEG in browser:
* sendFile('/path/to.jpeg', array('type' => 'image/jpeg', 'disposition' => 'inline'));
*
* Read about the other Content-* HTTP headers if you'd like to
* provide the user with more information (such as Content-Description).
* http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
*
* Also be aware that the document may be cached by proxies and browsers.
* The Pragma and Cache-Control headers declare how the file may be cached
* by intermediaries. They default to require clients to validate with
* the server before releasing cached responses. See
* http://www.mnot.net/cache_docs/ for an overview of web caching and
* http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
* for the Cache-Control header spec.
*/
public function sendFile($path, $options = array())
{
$path = realpath($path);
if (!file_exists($path)) {
$Exception = new ControllerException(Ak::t('Cannot read file %path', array('%path' => $path)));
$Exception->status = 500;
throw $Exception;
}
$this->performed_render = false;
if (!empty($options['x_sendfile'])) {
$this->_log("Sending X-Sendfile header {$path}");
$this->Response->addHeader(array('X-Sendfile' => $path));
$this->renderNothing(empty($options['status']) ? 200 : $options['status']);
return;
}
$options['length'] = empty($options['length']) ? filesize($path) : $options['length'];
$options['filename'] = empty($options['filename']) ? basename($path) : $options['filename'];
$options['type'] = empty($options['type']) ? Ak::mime_content_type($path) : $options['type'];
$this->_sendFileHeaders($options);
if (!empty($options['stream'])) {
$this->render(array('text' => new AkStream($path, $options['buffer_size'])));
} else {
$this->render(array('text' => AkFileSystem::file_get_contents($path)));
}
}