对于我的生活我看不出为什么,但它有正确的文件名和所有文件,但下载后文件本身是空的。据我可以看到它正确的位置,数据库也有正确的信息。正在下载空文件
function download()
{
global $session,$project,$config,$args;
$fid = $args[0];
$query = query('SELECT * FROM files WHERE id = ?',$fid);
if(num($query) == 1)
{
$file = fetch($query);
//$happyfix = "http://imengine.gofreeserve.com/admin";
$filename = URL . "/_files/{$file->in_project}/{$file->in_folder}/" . md5($fid) . ".{$file->extension}";
//$filename = $happyfix . "/_files/{$file->in_project}/{$file->in_folder}/" . md5($fid) . ".{$file->extension}";
if(ini_get('zlib.output_compression'))
{
ini_set('zlib.output_compression', 'Off');
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $file->mimetype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".$file->name . '.' . $file->extension."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
}
else
{
redirect('That file does not exist','','error');
}
}
什么是这些文件的大小?你使用输出缓冲吗? –
检查'$ filename'字符串是否正确 – tttony
如果$ filename不正确,文件大小和读取文件都会产生一些错误。 –