我正在使用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-Disposition
为inline
且仅接受attachment
的文件名,Android是否无法获取文件名?
顺便说一句,我使用了原生Chrome浏览器(32.0)和Android 4.4.2。
答案 0 :(得分:1)
如果用户请求将内容保存到文件,则建议将Content-Disposition response-header字段用作原始服务器建议默认文件名的方法。这种用法源于RFC 1806 [35]中Content-Disposition的定义。
请注意,filename-parm
仅针对附件指定,而不是针对内联内容。事实上,虽然大多数浏览器都会解析参数并遵守它,但标准并没有要求这种行为。如果您打算提供要下载的文件,则应将内容处置设置为attachment
。