我正在wordpress中创建一个插件,它使用wp媒体上传器将文件上传到网站。问题是如果一个文件存在同名,那么当前上传的文件的名称最后会附加一个数字。
如果我上传file001.pdf然后将下一个文件重命名为file0012.pdf而不是file001-2.pdf,则会出现此问题 这是一个问题,因为用户可能认为这是文件12而不是文件1的版本2.
如何更改,如果系统中已存在同名文件,则上传的文件会重命名?
修改
所以我发现在wp-includes / functions.php中有一个名为 wp_unique_filename 的函数,它会检查唯一的文件名并递增,直到名称唯一。我现在只需找到一种方法来在插件目录中自定义该功能。
答案 0 :(得分:0)
WordPress提供了一个钩子 wp_handle_upload_prefilter ,如下所示
function handle_uploadedimage($arr) {
$random_number = md5(rand(10000,99999));
$ext = pathinfo($arr['name'], PATHINFO_EXTENSION);
$arr['name'] = $random_number .'.'.$ext;
return $arr;
}
add_filter('wp_handle_upload_prefilter', 'handle_uploadedimage', 1, 1);