也想出现在这里?联系我们

wordpress教程:解决wordpress上传中文附件出现乱码的问题

  • 文章介绍
  • 升级版本
  • 评价&建议
也想出现在这里?联系我们
也想出现在这里?联系我们

问题由来

出现这种问题是因为小编在日常生活中使用wordpress编辑文章的时候,上传的图片必须是英文名的,如果是中文名的要么就是乱码,要么就是图片不显示,每次都要修改文件名再上传,如果遇到图片多的,那么操作起来就十分的复杂了,而今天特地找了相关的资料,留个wordpress教程给大家,方面大家遇到这样的问题能够有效的解决!
20110425131222-1062774419

解决方法:

将以下代码加入wordpress主题文件的functions.php文件内:

  1. function upload_file($filename) {  
  2. $parts = explode('.'$filename);  
  3. $filename = array_shift($parts);  
  4. $extension = array_pop($parts);  
  5. foreach ( (array$parts as $part)  
  6. $filename .= '.' . $part;  
  7.     
  8. if(preg_match('/[一-龥]/u', $filename)){  
  9. $filename = md5($filename);  
  10. }  
  11. $filename .= '.' . $extension;  
  12. return $filename ;  
  13. }  
  14. add_filter('sanitize_file_name', 'upload_file', 5,1);  

2014年02/21更新:wordpress上传文件,文件名自动md5加密并截取指定长度

  1. function rename_filename($filename) {  
  2.     $info = pathinfo($filename);  
  3.     $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];  
  4.     $name = basename($filename$ext);  
  5.     return substr(md5($name), 0, 16) . $ext//截取前面16个字符  
  6. }  
  7. add_filter('sanitize_file_name', 'rename_filename', 10);  

解决说明:

通过上面的代码,就可以判定我们上传的附件是中文还是英文,如果是中文就会将名称自动转化成md5值来储存。这样,我们上传中文图片的时候就不用担心图片的不显示或者出现乱码了!

0
  • 2013.11.23初次和大家见面了!

已拥有1人对该主题的建议

  1. 沙发
    divachen:

    需改善
    $filenfo = pathinfo($filename);
    Array
    (
    [dirname] =>,
    [basename] => 2-3-45-256,jpg
    [extension] => jpg
    [filename] => 2-3-45-256
    )

    2013-12-30 下午 5:21 [回复]

发表评论

还能输入240个字

Hi, 欢迎加入Wordpress技术交流群,带你装逼带你飞!

我要入群
也想出现在这里?联系我们
wordpress主题推荐
也想出现在这里?联系我们
wordpress主题站推荐
也想出现在这里?联系我们
wordpress主题站推荐
也想出现在这里?联系我们

我来推荐一个更牛逼的给你看看?

  • 猛戳我吧