为了账号安全,请及时绑定邮箱和手机立即绑定

文件名中带#的文件下载失败

文件名中带#的文件下载失败

PHP
斯蒂芬大帝 2022-01-14 16:43:30
背景我有一个在 CentOS 服务器上运行的 PHP 应用程序。前端使用 ajax 调用来访问 PHP 脚本。该脚本从服务器返回一个文件并将其下载到客户端。问题如果文件#名中有 ,则文件下载失败。例子File#Name.pdf = 无法正确下载FileName.pdf = 是否正确下载这是用于检索文件的 PHP,if( isset($_GET['path'])) {    $path = $_GET['path'];    if(!file_exists($path)) {        die('file not found');    } else {        header('Content-Description: File Transfer');        header('Content-Type: application/octet-stream');        header('Content-Disposition: attachment; filename='.$path);        header('Content-Length: '.filesize($path));        readfile($path);        ob_clean();        flush();        exit;    }}问题为什么在名称中时文件无法下载#?
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

啊,文件名是来自 GET 请求吗?如果是这样,# 可能会被重写为 %23。尝试

$path = urldecode($_GET['path']);


查看完整回答
反对 回复 2022-01-14
  • 1 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信