Quad.Wiki

Ошибка "Неверный тип файла" или "Файл не является графическим"

Проблема

При импорте из файла XML (или программой QuadSync) сайт выдает ошибку "Неверный тип файла" или "Файл не является графическим"

Решение

Ошибка появляется из-за того, что у загружаемого товара на сайт есть какая-то битая картинка, или файл, передаваемый в качестве картинки, не является изображением. Такая ситуация может быть из-за:

1. закончилось место на хостинге, либо были какие-то другие проблемы с хостингом и часть файлов картинок загрузилась с нулевым размером

2. были ошибки при получении картинок из Quad.Net и часть картинок маленького размера, при их открытии либо ошибка, либо открывается полностью белая картинка

3. кривая картинка получена парсером из-за неверных настроек парсера или из-за проблем с получением этой картинки с сайта-источника

  1. Определить из-за какого файла проблема
  2. Удалить этот файл на сайте в папке uploads/1c_catalog/images
  3. Удалить этот файл на компьютере из папки Quad Solutions / files / 5_ image / ready
  4. Удалить этот файл на компьютере из папки Quad Solutions / files / 5_ image / quad (или pars, если она получена парсингом)
  5. Получить заново описания из Quad.Net либо внести исправления в настройки парсера и получить картинки заново парсером


1. Если не получается найти проблемный файл изображения, а в сообщении ошибки не указано название файла (битрикс на момент подготовки данной статьи не умел показывать эту информацию, а просто выдавал ошибку, по которой не возможно определить с каким файлом проблемы), то нужно изменить исходники сайта, чтобы он стал отображать более детально ошибку. При описанных ниже изменениях сломать на сайте что-то очень сложно, но, в любом случае, мы не отвечаем за то, что сайт ваш поломается или случится еще что-нибудь (если боитесь сами, то можете написать в службу поддержки битрикса, пусть они вам скажут на каком файле появляется ошибка, ответа вы не получите, но, возможно, они через пару лет сделают нормальный информативный вывод ошибок). Можете так же сделать бекап сайта, перед тем как менять исходный код. Для включения в вывод ошибки информации о файле нужно сделать следующее:


зайдите в админку сайта в раздел Контент / Структура сайта / Файлы и папки


перейдите в папку bitrix\modules\main\classes\general\ найдите файл file.php и откройте его для редактирования


скопируйте текст в блокнот и найдите в нем слово FILE_BAD_TYPE, оно в файле будет в 4-х местах (на момент подготовки этой справки) - изменения нужно вносить везде, где встречается такой текст. Рекомендуем вместо стандартного блокнота установить программу Notepad++ - в ней есть нумерация строк и работать более комфортно, чем в обычном блокноте. В этой же программе можно подсветить синтаксис, чтобы было удобнее находить нужные слова для замены


Первое вхождение будет в блоке который начинается с validateFile


Здесь нужно в каждой строке, которая начинается с return, добавить текст ." ".$arFile["name"] перед точкой с запятой


Следующие 2 вхождения будут примерно около 1000-ой строки


Здесь так же нужно добавить текст ." ".$arFile["name"] перед точкой с запятой


И последнее вхождение чуть ниже, на момент подготовки материала это 1036-ая строка в актуальной на данный момент версии Bitrix - здесь добавляем то же самое перед точкой с запятой.



после этого скопируйте текст обратно в битрикс и сохраните.


Теперь сделайте импорт XML или заново запустите обновление в QuadSync - в результате в сообщении ошибки будет уже указано название файла, с которым проблема.


3. После того, как нашли, с каким из файлов проблема - сделайте с ним действия, как написано в начале статьи. Если после этого ошибка уже будет с другим файлом - нужно исправить и его. Если вы видите, что таких файлов много, то их нужно все удалить и с сайта и с компьютера, и получить/выгрузить фото заново.


Бывает, что битые файлы имеют размер 0кб или какой-то одинаковый размер для всех файлов, но так как файлы разнесены по подпапкам, то найти такие файлы все сразу сложно. В Проводнике Windows можно найти файлы по размеру в том числе и в подпапках, но поиск работает очень медленно и когда у вас много товаров - работать с этим почти невозможно. Чтобы это сделать, можно воспользоваться программой TotalCommander, скачать ее можно на этой странице https://www.ghisler.com/download.htm - она "условно" бесплатная, т.е. вы можете ей пользоваться неограниченно, но при запуске нужно будет в окне регистрации нажимать одну из цифр (увидите когда установите).

После установки вам нужно открыть папку Quad Solutions\files\5_ images и нажать эту кнопку, после чего отобразятся все файлы из подкаталогов


Чтобы увидеть размер файлов нажмите сюда и отсортируйте по размеру


Можно так же включить отображение эскизов фотографий, в этом случае вы можете увидеть "белые" изображения, с которыми потенциально могут быть проблемы, так как они не отображаются.

Вы можете удалить все плохие изображения сразу здесь и заново получить описания Quad.Net, если эти плохие изображение получены из нашего каталога. Если после повторной проверки с картинкой все так же проблема - напишите ее название в техподдержку.

Если кривых картинок не много - удалите их с сайта вручную. На сайт выгружаются картинки из папки Quad Solutions\files\5_ image\ready

Название подпапки - это QID товары минус последние 3 цифры. В названии картинки на конце (обычно) - QID товара. Т.е. если вам нужно найти какое-то конкретное фото и у вас есть только название товара, то нужно во вкладке Продукция посмотреть QID товара


Т.е. если у товара QID = 765, то папка в которой он находит "0", если 3765, то папка "3", если 13765, то папка "13". Вот эта цифра QID:



Изменения, которые вы вносили в исходники битрикс, затрутся после обновления CMS до новой версии - их нужно будет вносить заново, если вы видите, что перестало в ошибках выводиться название файла.


Другие материалы