1、修改文件:thinkphp/library/think/File.php
找到setSaveName方法:将中文文件名转为utf-8输出给浏览器,大约在127行,加入
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$saveName = iconv('gbk', 'utf-8',$saveName);
}
$this->saveName = $saveName;
2、在364行加入:
$saveName = $this->buildSaveName($savename);
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$saveName = iconv('utf-8','gbk//IGNORE', $saveName);
}
这篇博客介绍了如何修改ThinkPHP的File.php文件,以解决在Windows环境下中文文件名的编码转换问题。主要涉及在setSaveName和保存文件操作中添加GBK到UTF-8的转换代码,确保文件名在不同操作系统下的正确显示和处理。
383

被折叠的 条评论
为什么被折叠?



