gpt4 book ai didi

javascript - 通过 PHP 下载 PDF 无法在手机中打开

转载 作者:行者123 更新时间:2023-12-03 09:38:28 25 4
gpt4 key购买 nike

从 wkhtmltopdf 生成 PDF 在桌面上运行得很好。我有一个两步过程来生成文件,然后下载文件。生成的文件在我的移动设备上打开得很好(当我通过电子邮件发送时),但使用 PHP 脚本,下载后我无法打开。

换句话说,不是 PDF,而是 PHP 下载导致了问题。该文件会以适当的名称下载,但无法在移动设备中打开。

带 Chrome 的 Galaxy S5(最新)。

使用 javascript 开始下载:

window.location = 'savePDF.php?file=' + filename + '&fileName=' + nameString;

这是 PHP 脚本:

<?php
$file = $_GET['file'];

header('Pragma: public',true);
header('Expires: 0');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.$_GET['fileName'].'.pdf"');
header("Content-Transfer-Encoding: binary");
header('Content-Length: ' . filesize($file));
readfile($file);
unlink($file);
?>

编辑:unlink($file) 添加到代码中以显示该方面。

最佳答案

想通了。感谢大家帮助我调试(在没有开发工具的移动设备上这是一个痛苦)。

readfile($file) 之后,出于某种原因,我在移动设备上进行了 unlink($file); (当它询问我想用下载之前的文件)它在读取整个内容之前删除了临时文件。相反,我添加了:

exec("php cleantmp.php $tmpfile > NUL &");

并创建了 cleantmp.php:

<?php
if (php_sapi_name() == 'cli') {
sleep(10);

unlink($argv[1]);
}
?>

现在在后台运行并在 10 秒后删除临时文件。

再次感谢您的帮助 CBroe

关于javascript - 通过 PHP 下载 PDF 无法在手机中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31258109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com