如果文件存在,wordpress媒体上传以适当地重命名文件

时间:2015-02-11 11:04:44

标签: wordpress file upload media rename

我正在wordpress中创建一个插件,它使用wp媒体上传器将文件上传到网站。问题是如果一个文件存在同名,那么当前上传的文件的名称最后会附加一个数字。

如果我上传file001.pdf然后将下一个文件重命名为file0012.pdf而不是file001-2.pdf,则会出现此问题 这是一个问题,因为用户可能认为这是文件12而不是文件1的版本2.

如何更改,如果系统中已存在同名文件,则上传的文件会重命名?

修改

所以我发现在wp-includes / functions.php中有一个名为 wp_unique_filename 的函数,它会检查唯一的文件名并递增,直到名称唯一。我现在只需找到一种方法来在插件目录中自定义该功能。

1 个答案:

答案 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);