Страница 1 из 1

Проблемы с импортом фото по ссылке (создает дубликаты и не отображает локальные фото)

Добавлено: 03.12.2019, 09:11
wnemy
Здравствуйте, у меня проблема с импортом. В файле импорта колонка изображения ссылками. После выгрузки на сайт и дальнейшем обновлении страницы изображения вновь скачивается на сервер и создают дубликаты с новым названием_n файлов которые уже были скачаны из-за этого большая нагрузка на сервер, долгая загрузка страниц товаров (как в админке так и в каталоге) и захламление сервера. Неподскажите как исправить данную проблему?

Добавлено: 03.12.2019, 09:17
wnemy
Версия cms 3.3.0

Добавлено: 03.12.2019, 09:22
korshunov
Попробуйте сначала воспроизвести ошибочную ситуацию на демо сервере.
Если не получится, то ошибка индивидуальная.

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

Добавлено: 03.12.2019, 09:26
wnemy
korshunov, ошибка как на локальной машине так и на хостинге и на https://demookay.com/ видно что товары которые импортированы, фото по ссылке загружаются дольше чем все остальные.

Добавлено: 03.12.2019, 10:45
korshunov
У меня на демо не идет импорт из Вашего файла, дает ошибку Должен быть задан хотя бы Артикул или Название товара.

Добавлено: 03.12.2019, 11:17
wnemy
korshunov, ну так можно просто подключить поле "название товара" или "артикул". Но файл перезалил

Добавлено: 03.12.2019, 14:47
korshunov
Похоже, Вы нашли серьезную ошибку.
Файлы резайзятся при каждом обращении, а в БД запись об изображении не обновляется. Возникает жуткая нагрузка и неминуемо переполнение дискового пространства.

Ждать теперь реакции разработчика...

Добавлено: 03.12.2019, 14:54
wnemy
korshunov, Да, все верно. Написал им в тех.поддержку. Жду решения

Добавлено спустя 1 час 24 минуты:
Тех.поддержка исправила проблему. В файле Okay\Core\Image.php
Исправить на ~292 строке это:

Код: Выделить всё

// Перед долгим копированием займем это имя
.
.
.
->where('filename=?', rawurlencode($filename));
            $this->db->query($update);


на это:

Код: Выделить всё

// Перед долгим копированием займем это имя
.
.
.
->where('filename=:encoded_filename')->bindValue('encoded_filename', rawurlencode($filename));
            $this->db->query($update, true);
            die;