PHP | fpassthru 函數
怎樣輸出圖片
最近更新時間 2021-01-18 15:17:48
fpassthru 函數輸出文件指針處的所有剩餘數據。
將給定的文件指針從當前的位置讀取到 EOF 並把結果寫到輸出緩衝區。如果已經向文件寫入數據,就必須調用 rewind() 來將文件指針指向文件頭。如果既不修改文件也不在特定位置檢索,只想將文件的內容下載到輸出緩衝區,應該使用 readfile(),這樣可以省去 fopen() 調用。
函數定義
fpassthru ( resource $handle ) : int
// 源文件位於:ext/standard/file.c
# 函數定義
PHPAPI PHP_FUNCTION(fpassthru)
{
...
size = php_stream_passthru(stream);
RETURN_LONG(size);
}
參數
- checkhandle - 文件指針。
返回值
- checkint - 字符數目。失敗時返回 false。
示例1: - 使用 fpassthru() 函數輸出圖片。
<?php
/**
* PHP fpassthru() 函數輸出圖片。
*
* @since Version 1.0.0
* @filesource
*/
// 以二進制形式打開文件
$fileName = 'foo.png';
$fp = fopen($fileName, 'rb');
// 設置 Header
header("Content-Type: image/png");
header("Content-Length: " . filesize($fileName));
// 發送圖片並終止腳本
fpassthru($fp);
exit;