我有ZIP文件在一个目录,是一个步骤从根目录(以防止热链接等)。这里是代码:
<?php
$filename = $_GET['id'];
if(!$filename){
header("Location: index.html");
} else {
function send_download($filename){
$file_path = '../../../../downloads/' . $filename . '.zip';
$file_size=@filesize($file_path);
header("Content-Type: application/x-zip-compressed");
header("Content-disposition: attachment; filename=$filename");
header("Content-Length: $file_size");
readfile($file_path);
exit;
}
send_download($filename);
}
?>
字符串
所有的ZIP文件都很好,但是在“a”标签上使用这种方法会导致下载的文件大小为0字节!:(
你知道为什么吗?
多谢了!
6条答案
按热度按时间sirbozc51#
你可以试着把
Content-type
改为:字符串
在此之前,请检查该文件是否存在。
型
des4xlb02#
1.基于_GET[“id”]> 0且不为null,您已经创建了一个函数,该函数已在之后直接使用,因此您只是添加了更多行代码,但没有必要。
13z8s7eq3#
是的,在谷歌搜索和一些血,汗和眼泪之后,我终于找到了解决方案!
字符串
非常感谢所有的人在这方面提供了一些帮助!
lhcgjxsq4#
下面是一个简单的例子:
字符串
gojuced75#
只有一个错误我们都在下面做检查。
readfile($file); //$file应该是相对的,而不是绝对的。就是这样。
谢谢你,
阿尼路德·苏德。
6rvt4ljy6#
我知道这是一个非常古老的问题,虽然我刚刚为自己解决了这个问题。在我的情况下,它是内容长度头,我有:
字符串
将其更改为:
型
我解决了这个问题,PHP试图解释“,但只使用整数就可以了。