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



问候。

以下是我用来处理在浏览器窗口中内联打开的文件的标题集(通常是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

问题如下。桌面在浏览器窗口中以内联方式打开文件,但安卓设备下载了它,并将文件名设置为download.php,而不是path-to-file.pdf。这会引起误解,我正在寻求帮助。

有没有办法以某种方式设置头,以便文件获得正确的名称?

也许您可以像这样使用apache模块重写:

<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

因此,当文件将被保存时,它将在"文件路径.pdf"下

相关内容

  • 没有找到相关文章

最新更新