Rumah >php教程 >PHP源码 >php实现中文文件下载

php实现中文文件下载

PHP中文网
PHP中文网asal
2016-05-24 12:52:551219semak imbas

php代码

/*
 * $filepath 文件路径
 * $newfilename 下载时的命名
 * download('/abc.xls','abc教学');
 * 下载下来的文件将是abc教学.xls
 */
function download($filepath,$newfilename){		
		$id = intval($_GET['id']);
		$db = model('tool');
		$tool = $db->where('id='.$id)->find();
		if(!$tool) $this->error('未找到您要查看的工具');
		
		$ua = $_SERVER["HTTP_USER_AGENT"];
		
			
		$pathinfo = pathinfo($filepath);
		$newfilename = $newfilename.'.'.$pathinfo['extension'];
		
		$file = fopen( $filepath ,"r");

		header('Content-Type: application/octet-stream');
		header("Accept-Ranges: bytes");
        header("Accept-Length: ".filesize($filepath));
		if (preg_match("/MSIE/", $ua)) {
			header('Content-Disposition: attachment; filename="' . rawurlencode($newfilename)  . '"');
		} else if (preg_match("/Firefox/", $ua)) {
			header('Content-Disposition: attachment; filename*="utf8\'\'' . $newfilename . '"');
		} else {
			header('Content-Disposition: attachment; filename="' . rawurlencode($newfilename) . '"');
		}
		
        echo fread($file, filesize($filepath));
		
		//$db->where('id='.$id)->data($update)->update();
        fclose($file);

	}
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:table横跨多行多列样式Artikel seterusnya:正则匹配是否是科学技术