从wkhtmltopdf生成一个在桌面上运行良好的PDF。 我有一个两步过程来生成文件然后下载文件。 生成的文件在我的移动设备上打开就好了(当我通过电子邮件发送时),但是使用PHP脚本,我无法在下载后打开。
换句话说,它不是PDF,它是导致问题的PHP下载。该文件使用适当的名称下载,但不会在移动设备中打开。
Galaxy S5 w / Chrome(最新版)。
下载以javascript:
开始OnSurfaceTextureUpdated
以下是PHP脚本:
window.location = 'savePDF.php?file=' + filename + '&fileName=' + nameString;
编辑:<?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);
?>
已添加到代码中以显示该方面。
答案 0 :(得分:1)
想出来。感谢大家帮我调试(在没有开发工具的移动设备上,这很痛苦)。
我unlink($file);
之后readfile($file)
因为某种原因在移动设备上(当它在下载之前询问我想要对文件做什么时)它是在删除临时文件之前阅读全部内容。相反,我补充说:
exec("php cleantmp.php $tmpfile > NUL &");
并创建了cleantmp.php:
<?php
if (php_sapi_name() == 'cli') {
sleep(10);
unlink($argv[1]);
}
?>
现在在后台运行并在10秒后删除临时文件。
再次感谢您的帮助CBroe