无法打开已下载的文件'&'文件名中的符号

时间:2014-05-06 07:23:44

标签: php file download

我想下载上传到服务器的文件。我有文件名作为链接,我需要在用户点击它时直接下载文件。我已经成功了。我现在遇到的问题是我无法打开文件在文件名中包含amp个符号,尽管它已被下载。例如:&,test.doc(包含其他特殊符号的文件名可以下载并正确打开。)

我的php脚本是这样的:

<script>
function downloadme(file){          
    var link = "download.php?file=" + file; 
    location.replace(link);
} 
</script>

<a title="Click to download" href="javascript:downloadme()">filename</a>

的download.php

<?php
$path = $_GET['file'];
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"" . basename($path . $uri[1]) . "\"" ); 
@readfile($path);  
 ?>  

1 个答案:

答案 0 :(得分:3)

这就是我做的事情

的download.php:

<?php
$path = $_GET['file'];
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"" . basename($path . $uri[1]) . "\"" ); 
@readfile($_GET['file']);
?>

html文件:

<script>
function downloadme(file){          
    var link = "download.php?file=" + escape(file);
    location.replace(link);
} 
</script>

<a title="Click to download" href="javascript:downloadme('test&12.doc')">filename</a>