HardBirch

WordPress中附件中文名上传失败,或者打开失败问题

时间:12-07-24 栏目:WP技巧分享 作者:魔豆先生 评论:0 点击: 2,992 次

wonderyl在使用wordpress 3.0.1 时,发现他没法上传中文命名的附件,

这主要是因为php使用utf-8编码,而在保存文件时又没有考虑到与操作系统的编码方式兼容造成的。

国内使用的操作系统的编码一般都是GB2312和GBK,两者是兼容的。

wordpress中处理上传附件的原始代码是:

//file: "wordpress/wp-admin/includes/file.php" line:363  
$new_file = $uploads['path'] . "/$filename";

这里需要将文件名转换为GBK编码:

$new_file = $uploads['path'] . "/" . iconv("UTF-8", "GBK", $filename);

这个$new_file变量在后面还会被存储于数据库的wp_postmeta表中:

return apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ) );

而存入数据库的编码应该是utf-8的,因此不能直接使用$new_file变量:

return apply_filters( 'wp_handle_upload', array( 'file' => $uploads['path'] . "/$filename", 'url' => $url, 'type' => $type ) );

这样就解决了Wordpress中文名附件的上传问题

声明: 本文由( 魔豆先生 )原创编译,转载请保留链接: WordPress中附件中文名上传失败,或者打开失败问题

WordPress中附件中文名上传失败,或者打开失败问题:等您坐沙发呢!

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐