PHP 下载添加下划线



我正在尝试下载由 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和其余的特殊字符

相关内容

  • 没有找到相关文章

最新更新