我正在尝试下载由 POST 值传入的文件。但是,如果下载时文件名"Functional requirements example"
,则其名称将为"__Functional">
我在这里做错了什么吗? 下载的文件位于名为 folder1 的文件夹中。不确定如何从那里下载文件。任何想法如何解决此问题以便正确下载?
<?php
$ticType = $_POST['submit_param'];
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="/'.$ticType.'"');
readfile('folder1/'.$ticType);
?>
如果我没有错误,则不得将文件名括在'
或"
中,因为它们被视为名称的字符。您正在使用两个无效字符:文件名中不能使用的/
和"
,因此 PHP 将它们替换为每个无效字符的下划线。删除此字符,您应该解决!
它是文件名中的空格,以下特殊字符也会导致文件名中的下划线。
:, @, (), +, =, >, <, ?, {}, [], space
不确定浏览器/Http规范对此有何评论。但除此之外,名称可以是a-z A-Z 0-9
和其余的特殊字符