TCPDF不能保存中文文件名的解决方法

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文件时就可以保存为中文名称了。

 

相关推荐:

ThinkPHP5使用TCPDF生成PDF文件

TCPDF中文乱码的解决方法

 

声明: 1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。 2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。 3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。 4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。:吾爱主机之家 » TCPDF不能保存中文文件名的解决方法