0
即时通讯使用PHP下载文件的问题。它正在工作,直到我最近将我的网络服务器安装在USB棒上以在上线前测试一些新的修改。PHP的下载是从USB 0字节,权限?
一切工作,直到我在USB记忆棒上测试它,但是从USB棒运行服务器后,我能够下载一个文件,但它是0字节。
我使用已经在互联网上记录的一个相当标准的下载技术:
//test if a parameter was passed
if (isset($_GET['download'])) {
if (!empty($_GET['download'])) {
$files = $_GET['download'];
download($files);
}
}
//download function
function download($files){
if(!file_exists($files)){
die('Error');
}else{
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Type: application/octet-stream');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
ob_start();
flush();
readfile($files);
exit;
}
}
我相信检查,以查看该文件是否存在线路将防止下载该doesent存在的文件的能力。 ..不能下载一个空文件。
目前我相信它可能是一个权限问题,但iv无法验证在网上看作为文件确实存在于USB和硬盘上,所以也许它通过测试,但不允许从USB读取?
'filesize($ file)'copypaste错误还是实际错误? –
嗯,这就像是在原来的..但我会尝试改变它,看看它是否工作。 – D3181
@SamiKuhmonen实际上这工作和解决了我的问题,是一种无论如何工作的疏忽,张贴它作为一个答案,我会接受它 – D3181