Добро пожаловать в наше сообщество!
skripters.net - небольшой форум для вэб-мастеров на котором вам предоставляется широкий выбор скриптов, плагинов, стилей и много чего еще для запуска собственного проекта: интернет-магазина, форума, корпоративного сайта, продающего лендинга. Здесь вы найдете много решений по заработку в интернет. Сможете продать или купить нужное вам решение для старта своего веб-проекта. Опытные пользователи проконсультируют вас если вы вначале пути, подскажут как лучше, помогут в установке и настройке.

Помощь Загрузка изображений через CSV

PaRaDiZzz

Premium+
Регист
1 Апр 2017
Сообщения
27
Реакции
6
Так как очень много товара, решил воспользоваться загрузкой позиций через CSV.
Столкнулся с такой проблемой, что изображения загрузились, но отображаются некорректно:

1. В админке их не видно совсем

BEZYMYNNYI.png





2. Если захочешь редактировать товар, то они появляются

BEZYMYNNYI1.png



3. В каталоге картинки не отображаются, также как и в карточке товара.
Но стоит навести мышку (чтобы увеличить изображение, картинки появляются)

BEZYMYNNYI2.png



В чём может быть проблема? Кэш и куки чистил, как в браузере так и в могуте.
 

Катерина

Premium+
Регист
12 Дек 2017
Сообщения
19
Реакции
22
Так как очень много товара, решил воспользоваться загрузкой позиций через CSV.
Столкнулся с такой проблемой, что изображения загрузились, но отображаются некорректно:

1. В админке их не видно совсем

BEZYMYNNYI.png





2. Если захочешь редактировать товар, то они появляются

BEZYMYNNYI1.png



3. В каталоге картинки не отображаются, также как и в карточке товара.
Но стоит навести мышку (чтобы увеличить изображение, картинки появляются)

BEZYMYNNYI2.png



В чём может быть проблема? Кэш и куки чистил, как в браузере так и в могуте.
а вы пользуетесь плагином генерации миниатюр? возможно нужно его запустить
 

kevin_mitnik63

Premium+
Регист
11 Янв 2018
Сообщения
15
Реакции
12
Если при наведении мышки картинка отображается, а на сайте нет, то это означает что миниатюры картинок для товаров не создались. При наведении открывается потому что отображается оригинальное изображение.
Миниатюры могут не создаваться из-за ограничения в файле config.ini, если картинки превышают разрешение 1500x1500

Код:
; Максимальная ширина загружаемого на сервер изображения
MAX_UPLOAD_IMAGE_WIDTH = 1500

; Максимальная высота загружаемого на сервер изображения
MAX_UPLOAD_IMAGE_HEIGHT = 1500

А также из-за слабого хостинга.
 
  • Мне нравится
Реакции: MRX

Ivanerus

Premium+
Регист
16 Ноя 2017
Сообщения
13
Реакции
8
Вообщем как я решил проблемму с загрузкой картинок и не по одной, а по несколько на один товар по ссылке!
Сразу говорю способ не мой, сам нашёл его на просторах интернета!
1. Первое что делаем:
В файле config.ini
в конце добавляем код

Код:
HTTP_IMGCSV_DOWNLOAD = 1
HTTPS_IMGCSV_DOWNLOAD = 1

Данный конфиг позволяет загружать картинки из csv файла
в колонке "изображение" указываем ссылку на картинку

2.Далее делаем:

метод createProduct в классе import (файл /mg-core/lib/import.php)

Линиями выделен измененный кусок.


Код:
/**
   * Создает продукт в БД если его не было.
   * @param type $product - массив с данными о продукте.
   * @param type $catId - категория к которой относится продукт.
   */
  public function createProduct($product, $catId = null) {

    $model = new Models_Product();
    $variant = $product['variant'];
    $img_var = $product['image'];
    $property = $product['property'];
    $product['price'] = MG::numberDeFormat($product['price']);
    $product['old_price'] = MG::numberDeFormat($product['old_price']);
    unset($product['cat_url']);
    unset($product['variant']);
    unset($product['image']);
    unset($product['property']);
//************************************************
    //Если у нас несколько изображений, качаем их по очереди
    $images = explode('|', $product['image_url']);
    if(is_array($images)){
        foreach($images as &$image){
            self::$downloadLink==false;
            // если в строке содержится ссылка
            if (strpos($image, "http:") !== false|| strpos($image, "https:") !== false) {
                self::$downloadLink = true;
                $this->downloadImgFromSite($image);
                $image = basename($image);
            }
        }
        $product['image_url'] = implode('|', $images);
    }
 
    //если у нас в изображениях есть доп. параметры, вытащим их оттуда
    if(strpos($product['image_url'], '[:param:]')!==false) {
        // Парсим изображение, его alt и title.
      $images = $this->parseImgSeo($product['image_url']);
      $product['image_url'] = $images[0];
      $product['image_alt'] = $images[1];
      $product['image_title'] = $images[2]; 

    }
//************************************************
    if($catId === null){
      // 1 находим ID категории по заданному пути.

Метод работает, сам пользую.
 

giza

Premium+
Регист
6 Мар 2018
Сообщения
27
Реакции
2
Вообщем как я решил проблемму с загрузкой картинок и не по одной, а по несколько на один товар по ссылке!
Сразу говорю способ не мой, сам нашёл его на просторах интернета!
1. Первое что делаем:
В файле config.ini
в конце добавляем код

Код:
HTTP_IMGCSV_DOWNLOAD = 1
HTTPS_IMGCSV_DOWNLOAD = 1

Данный конфиг позволяет загружать картинки из csv файла
в колонке "изображение" указываем ссылку на картинку

2.Далее делаем:

метод createProduct в классе import (файл /mg-core/lib/import.php)

Линиями выделен измененный кусок.


Код:
/**
   * Создает продукт в БД если его не было.
   * @param type $product - массив с данными о продукте.
   * @param type $catId - категория к которой относится продукт.
   */
  public function createProduct($product, $catId = null) {

    $model = new Models_Product();
    $variant = $product['variant'];
    $img_var = $product['image'];
    $property = $product['property'];
    $product['price'] = MG::numberDeFormat($product['price']);
    $product['old_price'] = MG::numberDeFormat($product['old_price']);
    unset($product['cat_url']);
    unset($product['variant']);
    unset($product['image']);
    unset($product['property']);
//************************************************
    //Если у нас несколько изображений, качаем их по очереди
    $images = explode('|', $product['image_url']);
    if(is_array($images)){
        foreach($images as &$image){
            self::$downloadLink==false;
            // если в строке содержится ссылка
            if (strpos($image, "http:") !== false|| strpos($image, "https:") !== false) {
                self::$downloadLink = true;
                $this->downloadImgFromSite($image);
                $image = basename($image);
            }
        }
        $product['image_url'] = implode('|', $images);
    }

    //если у нас в изображениях есть доп. параметры, вытащим их оттуда
    if(strpos($product['image_url'], '[:param:]')!==false) {
        // Парсим изображение, его alt и title.
      $images = $this->parseImgSeo($product['image_url']);
      $product['image_url'] = $images[0];
      $product['image_alt'] = $images[1];
      $product['image_title'] = $images[2];

    }
//************************************************
    if($catId === null){
      // 1 находим ID категории по заданному пути.

Метод работает, сам пользую.


Твкое изменеие будет работать на 7.5.3 гипермаркете?
 

kevin_mitnik63

Premium+
Регист
11 Янв 2018
Сообщения
15
Реакции
12
Твкое изменеие будет работать на 7.5.3 гипермаркете?
Должно работать. Только учтите, что если картинки окажутся большие по весу, то это может привести к фатальному завершению работы скрипта и прерыванию процесса импорта. Произойти это может если картинки будут скачиваться и обрабатываться более 30 секунд. По умолчанию дается 30 секунд, либо время, записанное в настройке max_execution_time в php.ini (если такая настройка установлена).
 

dmitriy_xom

Premium+
Регист
22 Июл 2018
Сообщения
3
Реакции
0
Помогите пожалуйста разобраться куда, копать, где искать. При загрузке изображения через csv файл (в нем ссылка на скачивание), получаем ошибку. Перечень системный требований все соответствует. Включил лог ошибок,
Ошибка в следующем:
PHP:
[Tue Aug 21 19:07:08.913528 2018] [:error] [pid 19972] [client 195.39.196.250:8906] PHP Fatal error: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x89 0x50 in /var/www/babyfullj/new.babyfull.com.ua/mg-core/lib/upload.php on line 337, referer: Панель управления | Moguta.CMS

что это за ошибка?
 

Вложения

  • moguta.jpg
    moguta.jpg
    119,9 KB · Просмотры: 11

kevin_mitnik63

Premium+
Регист
11 Янв 2018
Сообщения
15
Реакции
12
Помогите пожалуйста разобраться куда, копать, где искать. При загрузке изображения через csv файл (в нем ссылка на скачивание), получаем ошибку. Перечень системный требований все соответствует. Включил лог ошибок,
Ошибка в следующем:
PHP:
[Tue Aug 21 19:07:08.913528 2018] [:error] [pid 19972] [client 195.39.196.250:8906] PHP Fatal error: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x89 0x50 in /var/www/babyfullj/new.babyfull.com.ua/mg-core/lib/upload.php on line 337, referer: Панель управления | Moguta.CMS

что это за ошибка?
Если ошибка всегда на одной и той же картинки , то надо посмотреть файл самой картинки. Вообще ошибка говорит о том что в функцию imagecreatefromjpeg() пришла не картинка.
 

zuzuzu

Пользователь
Регист
17 Янв 2020
Сообщения
0
Реакции
0
Не стал плодить темы, здесь как бы про картинки, решил попробовать эту cms и в админке не хочет загружать картинки товара, просто выдает красным, изображение не загружено, саму cms поставил пока на локальный сервер XAMPP, версия cms 6.9.1.1
 

zuzuzu

Пользователь
Регист
17 Янв 2020
Сообщения
0
Реакции
0
В общем проблема решилась, получается в XAMPP картинки почему-то не заливаются, на реальном хостинге все без проблем работает.
 

rombol

Premium+
Регист
28 Дек 2016
Сообщения
123
Реакции
16
кто в курсе, на 9.0 это уже пофиксили?
 

Anfisa

Пользователь
Регист
23 Май 2022
Сообщения
3
Реакции
0
Здравствуйте! Помогите пожалуйста!

Никак не могу выгрузить картинки с помощью ссылок.
Если у товара картинка одна, все без проблем. А вот если их несколько, выгружается как битая. Разделитель «|» ставила.
Плагин генерации миниатюр стоит.
Могута v.7.8.3

На хостинге картинки есть. проверила.
А на сайте вот никак не могу победить
 
Сверху