使用自定义文件名在WordPress中上传文件

时间:2019-06-06 21:20:44

标签: php wordpress file-upload dropzone.js

我目前正在为我的页面开发一个插件。目标是从用户页面上载自定义配置文件图像。现在,我想以预定义名称存储每个图像。遗憾的是,我还没有计划如何使用WordPress函数wp_upload_bits()在文件上传过程中为文件设置自定义名称:

$filename =  $_FILES['file']['name'];

$uploaded_bits = wp_upload_bits(
    $filename,
    null,
    file_get_contents( $_FILES['file']['tmp_name'] )
);

当前,例如,当我上传名称为yolo.png的图像时,名称仍为yolo.png

现在我想用这种方式定义新名称:

$filename = 'profile-image-' . get_current_user_id();

但这无法正常工作,因为$_FILES['file']['name']是我服务器上的临时保存文件,并且是yolo.png。那么你有什么想法我可以实现我的目标吗?

2 个答案:

答案 0 :(得分:0)

今天我不那么聪明。我需要传递文件类型,否则上传将无法进行...:

$filename = 'profile-image-' . get_current_user_id() . '.' . substr( strrchr( $_FILES['file']['name'], '.' ), 1 );

使用这部分代码,我得到的文件扩展名是:

'.' . substr( strrchr( $_FILES['file']['name'], '.' ), 1 );

答案 1 :(得分:0)

您也可以通过分割字符串来获取文件扩展名

$arr = explode('.',$_FILES['file']['name']);
$ext = end($arr);

然后将文件扩展名与所需的名称连接起来。

您也可以尝试使用该功能

move_uploaded_file($_FILES['file']['tmp_name'], 'path/to/folder/'.$filename);