路由人生 IT互联网 WordPress上传中文文件名或图片链接无法打开

WordPress上传中文文件名或图片链接无法打开

当有中文名的文件,不管是附件还是图片,当上传到服务端后,由于编码的原因,致使无法打开,通边修改以下几个文件来让中文可以正常显示。

首先修改一下上传的文件,打开 wp-admin/include/file.php

1)、找到以下行:
$new_file = $uploads[‘path’] . ”/$filename”;
将这一行修改为
$new_file = $uploads[‘path’] . ”/” . iconv(“UTF-8″, ”GBK”, $filename);
这样就将上传的文件的文件名转换成了GBK编码,服务器就能够正确的认识文件名了。
2)、找到:
return apply_filters( ‘wp_handle_upload’, array( ‘file’ => $new_file, ‘url’ => $url, ‘type’ => $type ), ‘upload’ );
将这行修改为
return apply_filters( ‘wp_handle_upload’, array( ‘file’ => $uploads[‘path’].”/$filename”, ‘url’ => $url, ‘type’ => $type ), ‘upload’ ); 

是存放于数据库的文件名依然是UTF-8的,所以,在使用 basename() 函数时,文件名再次解析错误。
3)、打开 wp-admin/include/media.php 文件,找到
$filename = esc_html(basename($post->guid));
修改为
 $filename = esc_html(substr($post->guid,strrpos($post->guid, ‘/’)+1)); 

通过上面的修改可以让有中文文件名的文件正常显示了。

本文来自路由人生,转载请注明出处。

作者:

发表评论

联系我们

联系我们

在线咨询: QQ交谈

邮箱: yufe@yufe.me

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部