PHP 使用 TCPDF 生成 PDF 文件时,如果文件名是中文会被直接过滤掉,以下是 TCPDF 不能保存中文文件名的解决方法:
打开 tcpdf.php 文件,找到 output 函数,大约在 7554 行。
1、注释以下代码,大约在 7565-7568 行:
if ($dest[0] != 'F') { $name = preg_replace('/[s]+/', '_', $name); $name = preg_replace('/[^a-zA-Z0-9_.-]/', '', $name); }
2、搜索该方法代码,替换如下代码,大约分别在 7639、7670、7693、7718 行。
header('Content-Disposition: attachment; filename="'.basename($name).'"');
替换为
header('Content-Disposition: attachment; filename="'.$name.'"');
上述代码分别在该方法的 case 'I':(打印 PDF)、case 'D':(下载 PDF)、case 'FD':(保存到本地文件)语句中。
这样 PHP 使用 TCPDF 生成 PDF 文件时就可以保存为中文名称了。
相关推荐:
声明:1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。







