Android下载文件名与标题不对应

时间:2013-12-18 19:59:35

标签: php android google-chrome http-headers content-disposition

我正在使用Nexus 7进行测试,任何其他平台都没有我可以测试的相同情况。我使用handle.php来处理下载,在echo文件内容之前,我使用了:

header('Content-length:' . $row['size']);
header('Content-type:' . $row['mime']);

header('Content-Disposition:inline; filename="' . $row["file_name"] . '"');

然后我使用android来下载文件,但文件名是handle.pdf,如果我将代码的最后一行更改为

header('Content-Disposition:attachment; filename="' . $row["file_name"] . '"');
有趣的是,文件名成了我想要的。 如果Content-Dispositioninline且仅接受attachment的文件名,Android是否无法获取文件名? 顺便说一句,我使用了原生Chrome浏览器(32.0)和Android 4.4.2。

1 个答案:

答案 0 :(得分:1)

RFC 2616, Sec 19

  

如果用户请求将内容保存到文件,则建议将Content-Disposition response-header字段用作原始服务器建议默认文件名的方法。这种用法源于RFC 1806 [35]中Content-Disposition的定义。

请注意,filename-parm仅针对附件指定,而不是针对内联内容。事实上,虽然大多数浏览器都会解析参数并遵守它,但标准并没有要求这种行为。如果您打算提供要下载的文件,则将内容处置设置为attachment