wordpress附件上传重命名

说到附件上传重命名这个问题,可能很多人不太在乎,其实以前我也不太在乎这个事情,但是直到有一天我发现水煮鱼博客有这么一个解释(点击查看水煮鱼原文),他说道“ 新图片上传会到数据库里面检查图片的名字是否已经有了,有了就会重命名图片的名字,比如 1.jpg,就会被重命名为 1-2.jpg,如果 1-2.jpg 名字也有了,就会重命名为 1-3.jpg,以此类推,一直到名字唯一为止。这样会造成上百条 SQL 请求 ”。

想想确实是这么一回事,因此我们很有必要给上传的附件进行重命名,且最好的效果是保证新附件的名字是唯一值,对于附件重命名这个功能在很多的主题或者插件(比如水煮鱼的wpjam插件)是已经集成了的,但也有很多主题是没有这个功能的,而且仅仅是为了一个附件重命名就去安装新插件我是不太认同的,所以在此我给大家分享下如何对上传的附件进行重命名,我们直接上代码,把代码放入主题 functions.php 文件即可 。

//使用md5对附件重命名
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = '.' . $info['extension'];
    $filedate = md5($file['name']);
    $file['name'] = $filedate.$ext;
    return $file;
}

以上代码是把上传的附件原名称转化为md5

//把附件名修改为上传时间
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = $info['extension'];
    $filedate = date('YmdHis');
    $file['name'] = $filedate.'.'.$ext;
    return $file;
}

这段代码会把附件上传的时间用作附件名,同时为了避免由于并发产生的时间相同问题,我们可以把第6行修改一下,尽量规避重名的问题。

$filedate = date('YmdHis').rand(0,99);

在时间后面加上一个0到99的随机整数作为后缀,这样可以大大降低重名问题,或者看下面

$filedate = date('YmdHis').rand(0,99).$file['name'];
$filedate = md5($filedate);

在上传时间后面接上随机整数和附件原名,然后在转成md5,同一时间上传的同名附件以及随机到同一个整数这种概率应该非常的低了吧,不然你真的可以去买彩票了,同时上面两段代码也是为了让你做一个更加直观的对比,除了第6行不一样其他地方都是一样的写法,你要是不满意上面防止重名的写法,也可以扩展你自己想要的方法进去。

写在最后:有愿意的伙伴可以扫个码或者微信搜一下公众号“思崖墨言”关注我的个人订阅号,语至告辞/抱拳。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文件上传漏洞 常见的漏洞分类服务器配置不当导致文件上传开源编辑器存在上传漏洞本地文件上传限制可以上传被绕过服务器端...
    二潘阅读 17,460评论 2 3
  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 1,253评论 0 4
  • 原文地址:https://xz.aliyun.com/t/6357 1. 文件上传漏洞 1.1 漏洞简介 ​ 文件...
    这是什么娃哈哈阅读 1,891评论 0 0
  • 在使用wordpress 4.9.4时,发现他没法上传中文命名的附件, 这主要是因为php使用utf-8编码,而在...
    君临天下夜未央阅读 856评论 0 2
  • 谁都是被上帝咬过一口的苹果,我希望你能拥抱我无法摒弃的不完美,是这些短处与长处共有的一个我,才刚好来到你身边。
    瑞妞阅读 239评论 0 0

友情链接更多精彩内容