我正在销售数码产品,并希望隐藏下载的真实位置。
所以我正在使用这样的重定向脚本:
protected function redirectDownload ($realfilename) {
ob_start();
$mm_type="application/octet-stream";
header("Cache-Control: public, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($realfilename)) );
header('Content-Disposition: attachment; filename="'.$this->fakefilename.'"');
header("Content-Transfer-Encoding: binary\n");
ob_end_clean();
readfile($realfilename);
}
我下载时,zip文件总是被破坏,但是当我直接下载它时,它很好。
有谁知道为什么会这样?
我认为这在另一台服务器上工作正常,但需要确认一下。
如果我无法解决这个问题,我可以使用其他任何技术或服务来做到这一点吗?
答案 0 :(得分:2)
在文本编辑器中打开已下载(已损坏)的文件,我猜在调用该函数之前已经有一些输出。
你最好在脚本的开头使用ob_start()而不是函数的开头。