Как исправить путь сохранения файлов изображений

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X

Как исправить путь сохранения файлов изображений

#1 Сегодня в 08:26

Всем привет! Как исправить путь сохранения файлов изображений с пути ../upload/000/u1/f/b/8250bd06.jpg и привести его к виду ../upload/000/u1/текущая дата/сгенерированный md5(uniqid()) код .jpg">. Раньше делал всё работало. После обновления движка сайта всё слетело. Как сейчас можно исправить путь сохранения графических файлов?

Смотрел здесь:

..\techno-gid.ru\system\core\uploader.php

..\techno-gid.ru\system\core\uploadfile.php

Изображение

#2 Сегодня в 14:05

 dimanwwwwww, при загрузке фото, например, из формы, вот тут github.com/instantsoft/icms2/blob/e368d356f190848977cda653ba3bc34e76921a27/system/core/uploader.php#L415 получается адрес папки будущего файла.

А оно в свою очередь использует функцию тут github.com/instantsoft/icms2/blob/e368d356f190848977cda653ba3bc34e76921a27/system/libs/files.helper.php#L310

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

А так, для небольших проектов с удовольствием сменил бы место хранения файлов на примерно такое же, как в wp.

#3 Сегодня в 15:16

а как быть с CDN? Например, хочется хранить файлы пользователя в объектном хранилище.

Сегодня в 22:41
#4 Сегодня в 15:21

Google Drive не хватает, ох не хватает.

#5 Сегодня в 15:24

 pupsik, к гугл драйв можно примонтировать папку сервера? Насколько мне известно — нет.

А cdn в известном смысле не получится использовать не потому, что нельзя выбрать папку для сохранения фотографий пользователя на сервере. Это же надо изменить формат хранения данных в полях изображение и изображения. При удалении фото помечать его под удаление на cdn и т.п. 

Это несколько выходит за рамки темы.

#6 Сегодня в 16:43

Исправил загрузку графических файлов в папку upload согласно пути: домен сайта /upload/000/u1/20250503/2af88bf9.jpg

В файле \system\libs\files.helper.php поменять функцию в строчке 310 на


PHP:

    function files_get_upload_dir($user_id = 0) {

    $dir_num_user = sprintf('%03d', intval($user_id / 100));

    $file_name   = md5(microtime(true));
    $dir_num_file   = date('Ymd');
    $upload_path = cmsConfig::get('upload_path');

    $dest_dir = $upload_path. "{$dir_num_user}/u{$user_id}/{$dir_num_file}/";

    if (!is_dir($dest_dir)) {
        @mkdir($dest_dir, 0777, true);
        @chmod($dest_dir, 0777);
        @chmod(pathinfo($dest_dir, PATHINFO_DIRNAME), 0777);
        @chmod($upload_path. "{$dir_num_user}/u{$user_id}", 0777);
        @chmod($upload_path. "{$dir_num_user}", 0777);
    }

    return $dest_dir;
}

Добавлено спустя 3 минуты

Спасибо за помощь!

#7 Сегодня в 16:55

 Zau4man, Ну как там его… Google Cloud Storage. Если я помню тут кто-то Amazon s3 прикрутил. 

Всех и не припомнишь

#8 Сегодня в 17:06

А, не лучше своё хранилище организовать. А, то сегодня Гугл Диск есть, завтра его нет в виду известных событий.

Похожее в блогах

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.