Переименовать изображение во время загрузки с использованием отметки даты и времени?

Я пытаюсь переименовать изображения во время загрузки, чтобы избежать проблем с именами файлов изображений, содержащих специальные символы и имена файлов с нелатинскими символами.

Я нашел эту функцию для переименования изображений в WordPress :

function sanitize_file_uploads( $file ){ $file['name'] = sanitize_file_name($file['name']); $file['name'] = preg_replace("/[^a-zA-Z0-9\_\-\.]/", "", $file['name']); $file['name'] = strtolower($file['name']); add_filter('sanitize_file_name', 'remove_accents'); return $file; } add_filter('wp_handle_upload_prefilter', 'sanitize_file_uploads'); 

Он удалит специальные непринятые символы, преобразует имя в нижний регистр и удаляет акценты. Но, например, если изображение имеет только не-латинские символы, оно создаст имя файла изображения следующим образом: jpg-width-heigh.jpg (ширина и высота – размеры изображения).

Я хотел бы иметь имя файла изображения на основе текущей даты и времени, например: year-month-day-hour-minute-second.jpg

Я знаю, что есть плагин, который может переименовать этот файл при загрузке , но я не хочу использовать плагин именно для этого.

Кто-нибудь имеет решение, идею?

Вы могли бы, например, проверить имя файла и расширение с pathinfo , после вашей специальной санировки.

Пример:

Если имя файла пуст, а расширение не пустое, добавьте отформатированное текущее время в качестве части имени файла:

 $info = pathinfo( $file['name'] ); if( empty( $info['filename'] ) && ! empty( $info['extension'] ) ) $file['name'] = sprintf( '%s.%s', current_time( 'YmdHis' ), $info['extension'] ); 

Если файл áéíú.png лишен .png с вашей специальной санитацией, он будет переименован в 2016-08-14-10-54-07.png

Обратите внимание, что если вы импортируете другой такой файл за ту же секунду, то wp_unique_filename() добавит -1 к части имени файла, чтобы он был переименован в 2016-08-14-10-54-07-1.png . В третьем файле будет добавлено -2 и т. Д.

Надеюсь, вы сможете изменить это в соответствии с вашими потребностями.