如何在Content-Disposition标头中使用带有特殊字符的文件名?

时间:2013-02-25 19:27:14

标签: php http-headers

我有一些PHP代码的问题:

$link = $_GET['url'];
$name = $_GET['name'];
$str = '[wanted-web.ro]';

header("Content-Disposition: attachment; filename=$str $name");
header("Content-type: audio/mpeg;\r\n");
readfile(str_replace(' ', '_', $link));

这是我用来保存文件的代码。 当我想将一些直接文件下载到我的计算机时,我在 wanted-web.ro 中使用的那个点在点“”之后停止写入其余信息,例如像这样:

[想要的Web

问题解决了!

非常感谢所有人..你很棒..我把你的评论结合起来,结果是:

header("Content-Disposition: attachment; filename=\"[wanted-web.ro] $name.mp3\""); 

完美的工作!!非常感谢所有人。对于!

2 个答案:

答案 0 :(得分:3)

在标题中引用文件名:

header("Content-Disposition: attachment; filename=\"$str $name\"");

http://www.ietf.org/rfc/rfc6266.txt

答案 1 :(得分:0)

试试这个:

<?php
$link = $_GET['url'];
$name = $_GET['name'];
$str = "[wanted-web.ro]";

header("Content-Disposition: attachment; filename=".$str." ".$name);
header("Content-type: audio/mpeg;\r\n");
readfile(str_replace(' ', '_', $link));