如何在安卓设备上为“Content-Disposition: inline;”文件设置文件名?

5

您好。

以下是我用来处理在浏览器窗口中打开文件(通常是PDF)的一组头文件:

header("Content-Type: " . $mime[$ext]);
header("Content-Disposition: inline; filename=" . $path_parts["basename"]);
header("Content-length: $fsize");
header("Cache-control: private");

这段代码放在 download.php 文件中,以在文件实际发送给客户端之前执行额外的步骤。文件的 URI 被设置为类似以下的 get 变量:
http://sitedotcom/download.php?=file=path-to-file.pdf

问题如下。桌面端在浏览器窗口内以内联方式打开文件,而Android设备会下载该文件,并将文件名设置为download.php,而不是path-to-file.pdf。这会引起误解,我希望能得到帮助。

有没有一种方法可以设置标题,以便文件获得正确的名称?

1个回答

0
也许您可以像这样使用 Apache 模块 rewrite:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^pdf/([^/\.]+)$ download.php?file=$1 [L]
</IfModule>

用户将会请求:
http://sitedotcom/pdf/path-to-file.pdf

而PHP将处理URL

http://sitedotcom/download.php?file=path-to-file.pdf

因此,当文件保存时,它将位于“path-to-file.pdf”下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接