【发布时间】:2020-01-04 08:54:56
【问题描述】:
我使用 PHP 来获取它,因为我需要从另一台服务器下载 PDF 文件。要下载此文件,我需要登录,而客户端不必登录。
问题是用户得到的 PDF 文件只是一个白页。
在我的服务器上,当我将内容写入文件时,里面仍然有内容 (file_put_contents("test.pdf",$content);)
我在发送之前尝试对它进行 base64 编码,并发现交付的数据仍然正确。所以它在解码(atob(data))或下载功能中失败。
(我也试过utf8编码)
在下载的 pdf 文件中,许多字符与这些框或问号 (��) 交换。
$result = curl_exec($ch);
file_put_contents("test.pdf",$result); //test.pdf contains correct document
echo base64_encode($result);
download(atob(data),"My.pdf") //data is answer of ajax request
function download(data, filename, type) {
var file = new Blob([data], {
type: type
});
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else { // Others
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function () {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
【问题讨论】:
标签: javascript php pdf download php-curl