我正在尝试使用PHP通过URL传递路径和文件名来下载文件服务器,如下所示:
<a class="downloadBtn" style="float:left;" href="download_file.php?folder=<?php echo $codrepresentante.'&file='.$nomeArquivo ?>" >download</a>
然后我收到这个PHP文件:
<?php
$fileName = $_GET['file'];
$coisa=urldecode($fileName);
$path= "http://localhost/portal/boletos/".$_GET["folder"];
$filePath = $path.'/'.$coisa;
echo "caminho: ".$filePath;
if(file_exists($filePath)){
// Define headers
header("Content-Description: File Transfer");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=".$coisa);
header('Content-Type: application/octet-stream');
header('Cache-Control: must-revalidate');
header('Content-Length: ' . filesize($coisa));
ob_clean();
flush();
// Read the file
echo readfile($filePath);
exit;
} else {
echo 'The file does not exist.';
}
?>
但我总是得到空文件或The file does not exist
响应。
我得到了$filePath
变量,并在浏览器中用来查看路径是否错误,但是它有效,所以路径是正确的。
有人可以通过指出我犯了哪个错误来帮助我吗?
答案 0 :(得分:2)
接收空文件
根据您向我们展示的代码,根本不应该进行任何下载。
echo&#34; caminho:&#34;。$ filePath;
您没有看到PHP向您报告的错误。
文件大小($ coisa)
这是文件名 - 而不是它的完整路径。
但我总是得到空文件或者文件不存在。&#39;
所以你不能获得任何下载,零长度或其他。
获取$ filePath变量并在浏览器中使用以查看路径是否错误
在浏览器中指定相对于文档根目录的路径 - 但在PHP代码中,路径应该相对于文件系统根目录。
你需要从
开始