Загрузить файл в WordPress с произвольным именем файла - PullRequest
0 голосов
/ 07 июня 2019

Я сейчас разрабатываю плагин для своей страницы.Цель состоит в том, чтобы загрузить пользовательское изображение профиля со страницы пользователя.Теперь я хочу хранить каждое изображение под заранее заданным именем.К сожалению, у меня нет плана, как я могу установить пользовательское имя для файла во время загрузки файла с помощью функции 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 голосов
/ 07 июня 2019

Вы также можете получить расширение файла, разделив строку

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

Затем вы объединяете расширение файла с желаемым именем.

Вы также можете попробовать функцию

move_uploaded_file($_FILES['file']['tmp_name'], 'path/to/folder/'.$filename);
0 голосов
/ 07 июня 2019

Сегодня я не такой умный. Мне нужно передать тип файла, иначе загрузка не может работать ...:

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

С этой частью кода я просто получаю расширение файла:

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