通过PHP下载PDF获胜't在手机中打开
Downloading PDF via PHP won't open in mobile
从wkhtmltopdf生成PDF在桌面上运行良好。我有一个两步的过程来生成文件,然后下载文件。生成的文件在我的移动设备上打开得很好(当我通过电子邮件发送时(,但使用PHP脚本,我无法在下载后打开。
换句话说,造成问题的不是PDF,而是PHP下载。该文件以适当的名称下载,但不会在移动设备中打开。
Galaxy S5带Chrome(最新(。
下载以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);
?>
EDIT: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
相关文章:
- 如何在生成下载文件时显示加载动画
- 直接下载文件,而不是从window.open(url)
- 如何使用javascript或html下载PDF格式的填写表单
- Javascript运行php文件,然后下载文件
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 通过php页面中的js强制下载txt
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 通过javascript下载文件时设置文件名
- 如何在Edge中下载图像/png数据URI
- 从手机中选择多个图像'使用phonegap的多媒体资料
- 下载使用POST数据动态生成的文件
- 在提交时打开thankyou.html+下载PDF
- HTML锚标记无法在android平台中下载文件
- PERL-下载CSV文件不完整
- 如何使用手机浏览器上的按钮拨打USSD代码
- 建议facebook好友下载手机应用程序
- 如何使用.apk链接直接从手机下载android应用程序
- 避免在智能手机上自动下载pdf
- 通过PHP下载PDF获胜't在手机中打开