下载文件函数,用的地方挺多的。
function file_download($file_url, $new_name = '')
{
if (!isset($file_url) || trim($file_url) == '') {
exit('download file 500');
}
if (!file_exists($file_url)) {
//检查文件是否存在
exit('download file 404');
}
$file_type = explode('.', $file_url);
$file_type = $file_type[count($file_type) - 1];
$file_name = date('YmdHis') . '.' . $file_type;
//basename($file_url);
$file_name = trim('' == $new_name) ? $file_name : urlencode($new_name) . '.' . $file_type;
//打开文件
$file_data = fopen($file_url, 'r');
$file_size = filesize($file_url);
//@ob_clean();
//输入文件标签
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Content-Length: " . $file_size);
header("Content-Disposition: attachment; filename=\"{$file_name}\"");
//输出文件内容
$buffer = 1024;
$buffer_count = 0;
while (!feof($file_data) && $file_size - $buffer_count > 0) {
$data = fread($file_data, $buffer);
$buffer_count += $buffer;
echo $data;
}
//echo fread($file_type, filesize($file_url));
fclose($file_data);
exit();
}