Мой вопрос: Вы видели подобную реализацию на других проектах ?
Ваш ответ: с картинками да, с глупостью да, с ошибками да.
искать примеры точно не буду
А возможно это происходит в ленивом режиме раз в несколько дней/недель
function clear_old_files(){
$expire_day = 24;
$expire_time = $expire_day * 60 * 60; // Время через которое файл считается устаревшим (в сек.)
$dir = wp_get_upload_dir()['basedir'] . '/comment_image/';
// проверяем, что $dir - каталог
if (is_dir($dir)) {
// открываем каталог
if ($dh = opendir($dir)) {
// читаем и выводим все элементы
// от первого до последнего
while (($file = readdir($dh)) !== false) {
// текущее время
$time_sec=time();
// время изменения файла
$time_file=filemtime($dir . $file);
// теперь узнаем сколько прошло времени (в секундах)
$time=$time_sec-$time_file;
$unlink = wp_get_upload_dir()['basedir'] . '/comment_image/' . $file;
if (is_file($unlink)){
if ($time>$expire_time){
if (unlink($unlink)){
echo 'Файл удален';
}else {
echo 'Ошибка при удалении файла';
}
}
}
}
// закрываем каталог
closedir($dh);
}
}
}
Так делают, потому что они решили сериализовать форму разом, а не держать в памяти объект с данными изображения, который, в случае удаления пользователе картинки, нужно обрабатывать, удаляя из него данные. Довольно надежное решение.
который, в случае удаления пользователе картинки, нужно обрабатывать, удаляя из него данные.
По отправке есть два варианта: загрузка изображений на сервер сразу и загрузка при отправке формы, с последующей доукомплектовкой тела запроса урлами изображений и другой информацией о них.
Тут вообще непонятно, особенно это:
При выборе второго варианта ничего предварительно обрабатывать не нужно, т.к. при сабмите формы удаленные превьюшки просто не попадут на сервер
Да, они не попадут, но пришедший ответ от сервера, а я напомню у нас обычно запрос на сохранение файлов отдельный
И вообще я не понимаю почему вам не даёт покоя этот сайт сделаный на конструкторе https://nethouse.ru , уже столько вопросов по его загрузке файлов.
objectId: 695906
type: 3
parentId:
commentId:
name: NAME
commenttext: COMMENT
attachments[10000][url]: 8292488b394caa9.s.siteapi.org/comment/9r01qp6dhzoc80kwwkk48000ss8w0g
attachments[10000][name]: 2-4Е-8181.jpg
attachments[10000][size]: 68514
attachments[10000][timestamp]: 1592930989
attachments[10000][type]: 1
files:
captcha[id]: e9aee5e012d1dc4e65b30854d6ee6e3e
captcha[input]: 333333
$_FILES['files']['tmp']['name']
, я могу загрузить в папку comments и сразу же удалить данный файл$file_array = [
'name' => basename( $url ), // ex: wp-header-logo.png
'tmp_name' => $tmp,
'error' => 0,
'size' => filesize($tmp),
];
$comment = array(
'comment_post_ID' => $comment_post_id,
'comment_author' => $comment_name,
'comment_author_email' => '',
'comment_author_url' => '',
'comment_content' => $comment_message,
'comment_type' => '',
'comment_parent' => $comment_parent,
'user_ID' => $user_id,
);
wp_new_comment( $comment );