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

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

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






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




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




В чём может быть проблема? Кэш и куки чистил, как в браузере так и в могуте.
 
Регист
12 Дек 2017
Сообщения
19
Симпатии
7
#2
Так как очень много товара, решил воспользоваться загрузкой позиций через CSV.
Столкнулся с такой проблемой, что изображения загрузились, но отображаются некорректно:

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






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




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




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

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

; Максимальная высота загружаемого на сервер изображения
MAX_UPLOAD_IMAGE_HEIGHT = 1500
А также из-за слабого хостинга.
 
Регист
16 Ноя 2017
Сообщения
8
Симпатии
4
#4
Вообщем как я решил проблемму с загрузкой картинок и не по одной, а по несколько на один товар по ссылке!
Сразу говорю способ не мой, сам нашёл его на просторах интернета!
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
Симпатии
1
#5
Вообщем как я решил проблемму с загрузкой картинок и не по одной, а по несколько на один товар по ссылке!
Сразу говорю способ не мой, сам нашёл его на просторах интернета!
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 гипермаркете?
 
Регист
11 Янв 2018
Сообщения
15
Симпатии
11
#6
Твкое изменеие будет работать на 7.5.3 гипермаркете?
Должно работать. Только учтите, что если картинки окажутся большие по весу, то это может привести к фатальному завершению работы скрипта и прерыванию процесса импорта. Произойти это может если картинки будут скачиваться и обрабатываться более 30 секунд. По умолчанию дается 30 секунд, либо время, записанное в настройке max_execution_time в php.ini (если такая настройка установлена).
 
Регист
22 Июл 2018
Сообщения
3
Симпатии
0
#7
Помогите пожалуйста разобраться куда, копать, где искать. При загрузке изображения через 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
что это за ошибка?
 

Вложения

Регист
11 Янв 2018
Сообщения
15
Симпатии
11
#8
Помогите пожалуйста разобраться куда, копать, где искать. При загрузке изображения через 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() пришла не картинка.
 
Сверху Снизу