【发布时间】:2020-01-03 08:53:09
【问题描述】:
当我进行 Google 搜索时,我发现了大量关于单击时下载文件所需的代码的回复,而且效果很好。我正在寻找的是,当我单击链接时,它只会在浏览器中打开文件,而不是提示下载文件。这是下载文件的工作代码:
$file = $invoice_dir . '/test.xlsx';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
我怎样才能让它打开而不是使用我的本地软件?这是一个 XLSX Office 类型的文件,不是纯文本。我尝试了 include() 并输出乱码。
【问题讨论】:
-
XLSX无法在浏览器中播放。您需要解析它并以浏览器可以播放的格式提供它。 -
我不想在浏览器中显示它。我希望它在我的计算机上打开我的 Office 程序,而不提示先下载它。如果我直接点击文件,它会这样做,但出于安全原因,我不希望人们知道该文件的位置,所以我使用 php 文件作为重定向。几年前,我可以用一个 MP3 文件来做到这一点,你点击它,它就开始在他们计算机上的音乐播放器上流式传输。如果我没记错的话,标题必须不同才能导致
-
我将:“application/octet-stream”更改为:“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”,除非我需要做其他事情,否则它没有改变跨度>
标签: php