Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP显示多个文件_Php_File - Fatal编程技术网

PHP显示多个文件

PHP显示多个文件,php,file,Php,File,我想知道在PHP中是否有显示文件的选项。例如,我想要一个file.php,当我输入file.php?file=text.pdf时,它会显示text.pdf。我有一个png的小脚本。不过,我想对每种文件格式都使用它,这样它就可以像pdf一样支持png。 有没有办法读取并打印文件?在用户权限有限的文件管理系统中,这将非常有用。此代码应该能够下载任何文件 $file = '/path/to/your/file.png'; $finfo = new finfo(FILEINFO_MIME_TYPE);

我想知道在PHP中是否有显示文件的选项。例如,我想要一个file.php,当我输入file.php?file=text.pdf时,它会显示text.pdf。我有一个png的小脚本。不过,我想对每种文件格式都使用它,这样它就可以像pdf一样支持png。
有没有办法读取并打印文件?在用户权限有限的文件管理系统中,这将非常有用。

此代码应该能够下载任何文件

$file = '/path/to/your/file.png';
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime = $finfo->file($file);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
echo file_get_contents($file);

你想“显示”文件还是想下载?我只是重新考虑了我的想法,下载就足够了。有没有一种简单的方法可以做到这一点?不知何故,只有当我将“sizeof()”替换为“filesize()”时,这个脚本才对我有效。为什么会这样?你的话绝对正确!您应该改用
filesize($file)
,因为
sizeof
count()的别名