`

PHP解决浏览器 下载文件 中文名称乱码问题--兼容大多浏览器

 
阅读更多
function sendFile($serverPath, $filename,$charset = 'UTF-8', $mimeType = 'application/octet-stream')
{
	// 文件名乱码问题
	if (preg_match("/MSIE/", $_SERVER["HTTP_USER_AGENT"])) {
		$filename = urlencode($filename);
		$filename = str_replace("+", "%20", $filename);// 替换空格
		$attachmentHeader = "Content-Disposition: attachment; filename=\"{$filename}\"; charset={$charset}";
	} else if (preg_match("/Firefox/", $_SERVER["HTTP_USER_AGENT"])) {			
		$attachmentHeader = 'Content-Disposition: attachment; filename*="utf8\'\'' . $filename. '"' ;
	} else {
		$attachmentHeader = "Content-Disposition: attachment; filename=\"{$filename}\"; charset={$charset}";
	}
	
	
	$filesize = filesize($serverPath);

	//header("Pragma: public");   header("Expires: 0");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Content-Type: application/force-download");
	header("Content-Type: {$mimeType}");

	header($attachmentHeader);
	header('Pragma: cache');
	header('Cache-Control: public, must-revalidate, max-age=0');
	header("Content-Length: {$filesize}");
	readfile($serverPath);
	exit;
}
 
分享到:
评论

相关推荐

    跨浏览器PHP下载文件名中的中文乱码问题解决方法

    在PHP编程中,当涉及到跨浏览器的文件下载时,可能会遇到中文文件名显示为乱码的问题。这个问题主要是由于不同浏览器对文件名编码处理方式的差异所导致的。本文将详细介绍如何通过PHP解决这一问题。 首先,我们需要...

    PHP附件下载中文名称乱码的解决方法

    本文详细介绍了PHP附件下载时中文名称乱码问题的解决方法,并深入分析了乱码产生的原因以及如何通过编码转换来解决。 中文乱码问题的产生主要是由于客户端和服务器端的编码方式不一致导致。在Web开发中,我们通常...

    FCKeditor编辑器 中文乱码问题 彻底解决方案(提供附件)

    总结,处理FCKeditor的中文乱码问题需要从多方面着手,包括服务器配置、数据库设置、HTML页面、编辑器配置、文件读写和浏览器兼容性。理解并掌握这些关键点,能帮助开发者有效地解决乱码问题,提高用户体验。同时,...

    帝国CMS7.5版本utf-8版,php7.1环境 ,增加栏目生成拼音乱码解决

    5. **浏览器兼容性**:虽然这不是问题的直接原因,但也要确保用户使用的浏览器支持UTF-8,以避免在客户端显示乱码。 6. **日志分析**:通过查看系统日志,查找可能的错误提示,这有助于定位问题的具体位置。 7. **...

    php中强制下载文件的代码(解决了IE下中文文件名乱码问题)

    在PHP中实现文件下载功能,并确保在不同浏览器尤其是Internet Explorer (IE) 中处理中文文件名不出现乱码问题,是一项常见的Web开发任务。从提供的文件信息中,我们可以提炼出关于实现文件下载以及如何处理IE下中文...

    magicajax0.3.0解决中文乱码

    《解决magicajax0.3.0中的中文乱码问题》 在进行Web开发时,我们经常需要使用Ajax技术来实现页面的异步更新,而MagicAjax作为一款强大的Ajax库,为开发者提供了便捷的接口和丰富的功能。然而,在处理中文字符时,...

    PHP中文乱码.docx

    综上所述,解决PHP中文乱码问题需要从多个层面入手,包括调整文件编码、设置正确的HTTP头、同步数据库编码、处理操作系统差异以及采用适配的字符串处理函数。正确理解和应用这些知识点可以有效避免和解决PHP开发中的...

    ucenter_home乱码

    ”暗示了解决乱码问题的一种方法,即可能是由于官方PHP文件中的注释部分存在编码不兼容导致的。开发者已经对这些文件进行了修正,移除了可能导致乱码的注释内容,并提供了更新后的版本。这通常意味着用户需要下载...

    php页面乱码解决

    本文将详细解析如何解决PHP页面乱码问题,从理解字符集编码到具体的解决方案,帮助开发者有效应对这一挑战。 ### 1. 字符集编码基础知识 在深入探讨解决方案之前,我们首先需要理解几个基础概念:ASCII、UTF-8、...

    kindeditor乱码解决版

    然而,在处理中文字符时,有时会出现乱码问题,这可能是由于编码设置不正确或者与服务器环境的编码不兼容所导致。"kindeditor乱码解决版"正是为了解决这个问题而提供的版本。 乱码问题通常涉及到以下几个方面: 1....

    PHP中文乱码处理方法.docx

    在下载时,可以通过设置HTTP响应头来指示浏览器以特定编码显示文件名,例如在下载时重命名文件并恢复其原始中文名称。 总的来说,处理PHP中文乱码问题需要关注文件编码、数据库编码和系统编码的协调一致性,以及在...

    基于mysql php程序开发的中文乱码问题及对策分析.pdf

    总结来说,解决中文乱码问题的关键在于理解和统一各个环节的编码设置,包括文件保存编码、页面编码、数据库编码以及数据库连接编码。通过细心检查和调整这些设置,可以有效避免和解决乱码问题,确保程序正常运行并...

    Web_开发中遇到的UTF-8以及乱码的问题总结.zip

    7. **解决乱码的通用方法**:遇到乱码问题时,首先确认数据的原始编码,然后在每个处理环节(如数据库、文件、页面、脚本)都确保使用UTF-8编码。此外,文件传输时保持编码一致,如FTP传输时设置UTF-8模式,编辑器...

    解决dotproject中文名文件下载乱码问题的解决方法

    本文将深入探讨如何解决dotProject系统中的中文文件名下载时出现乱码的问题。dotProject是一款开源的项目管理软件,它允许用户上传、管理和下载各种文件,但有时在处理非ASCII字符(如中文字符)时可能会遇到编码不...

    php做下载文件的实现代码及文件名中乱码解决方法

    而在处理包含非ASCII字符的文件名时,容易出现浏览器乱码的问题,尤其是当文件名使用了UTF-8编码时。以下是详细的知识点解析。 ### PHP实现文件下载 1. **发送正确的HTTP头部信息**: - `header("Content-Type:...

    php中文乱码怎么办如何让浏览器自动识别utf-8

    总之,解决PHP中文乱码问题需要确保从源文件、HTTP响应头到数据库和文件处理的每个环节都正确处理字符编码。设置好这些,浏览器就能自动识别UTF-8编码,从而正确显示中文内容。在实际开发中,还需要根据具体环境和...

    discuz乱码问题

    7. **浏览器兼容性**:确保问题不是由于特定浏览器的兼容性问题导致的,可以尝试在不同的浏览器上测试。 解决 Discuz 乱码和 CSS 问题需要综合分析,从多个角度排查。了解并掌握这些知识,可以帮助我们更有效地应对...

    apache+mysql+php 乱码问题.docx

    在构建基于Apache、MySQL和PHP的Web环境时,可能会遇到字符编码相关的问题,尤其是在处理中文字符时出现乱码。这个问题通常涉及到服务器配置、数据库配置以及PHP配置等多个层面。以下是一份详细解决Apache+MySQL+PHP...

Global site tag (gtag.js) - Google Analytics