WordPress上传文件名自动md5加密并截取指定长度

在有些环境WordPress上传中文文件会产生乱码转码等情况,造成文件链接过长或者文件无法正常打开或下载。上一篇梦飞扬发表《WordPress解决上传中文名附件乱码问题》,该方法是在WordPress上传文件时判断文件名是否包含中文,如果包含则将文件名以md5方式加密。但是md5加密过后文件名依然是老长一大串,并不美观,尤其是有强迫症的小伙伴肯定不爽。

今天梦飞扬就发一段WordPress上传文件文件名自动md5加密并截取指定长度的代码给大家,代码如下:

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

将以上代码加到当前主题functions.php文件后,每次上传文件后WordPress都会自动将文件已MD5方式加密并且截取最前面的16个字符作为文件名。

展开评论