Php 是否撤消内容处置并将内容输出到服务器上的文件?
以下代码是源代码,取自DOMPDF库:FontLib。它可以处理.ttf字体的子设置,我一直在尝试使这段代码适应我的基本需求,不幸的是,我无法让代码按我想要的方式运行。。我有以下问题可以帮助我继续 如何编辑这段代码,使其不会强制下载,而是将其保存到服务器 我尝试了以下方法来禁用强制下载 禁用标题内容处置不会完全禁用其操作,它将触发一个新的下载,实际内容为二进制代码,为什么这样做?也许函数readfile()与这个问题有关,据我所知,它会将内容输出到输出缓冲区并显示出来。我如何防止这样做,并将其与file_put_contents()一起存储Php 是否撤消内容处置并将内容输出到服务器上的文件?,php,file-io,truetype,Php,File Io,Truetype,以下代码是源代码,取自DOMPDF库:FontLib。它可以处理.ttf字体的子设置,我一直在尝试使这段代码适应我的基本需求,不幸的是,我无法让代码按我想要的方式运行。。我有以下问题可以帮助我继续 如何编辑这段代码,使其不会强制下载,而是将其保存到服务器 我尝试了以下方法来禁用强制下载 禁用标题内容处置不会完全禁用其操作,它将触发一个新的下载,实际内容为二进制代码,为什么这样做?也许函数readfile()与这个问题有关,据我所知,它会将内容输出到输出缓冲区并显示出来。我如何防止这样做,并将其与
你应该注意以下几点: -读取文件并将其写入输出缓冲区。 -用于删除文件 上面的代码正在创建一个临时文件,使用readline函数将该文件的内容发送到输出缓冲区,然后在整个文件被缓冲后立即删除该文件。如果不想为文件提供服务器,请删除对header、readline和unlink的调用。所需文件的路径已存储在$tmp变量中,因此可以根据需要对其进行操作
if (isset($_POST["subset"])) {
$subset = $_POST["subset"];
ob_start();
require_once "../src/FontLib/Autoloader.php";
$font = Font::load($fontfile);
$font->parse();
$font->setSubset($subset);
$font->reduce();
$new_filename = basename($fontfile);
$dot = strpos($new_filename, ".");
$new_filename = substr($new_filename, 0, $dot)."-subset".substr($new_filename, $dot);
header("Content-Type: font/truetype");
header("Content-Disposition: attachment; filename=\"$new_filename\"");
$tmp = tempnam(sys_get_temp_dir(), "fnt");
$font->open($tmp, Binary_Stream::modeWrite);
$font->encode(array("OS/2"));
$font->close();
ob_end_clean();
readfile($tmp);
unlink($tmp);
return;
}