[ОТВЕТИТЬ]
18.10.2013 15:37
karachun
 
Доброго времени суток.
Есть Супермаг+ (1.030 SP5)? Есть каталог с картинками товаров. Имена картинок совпадают с артикулами из СМ. Вопрос: Как загрузить картинки в СМ? Как определить что надо приписать к началу файла, что бы получить формат СМ?
18.10.2013 15:42
Mtirt
 
О каком формате СМ речь? Супермаг вроде как в базе данных картинки хранит, в BLOB-полях...
18.10.2013 16:15
Dim
 
товарищ, видимо, не хочет руками привязывать картинки, а хочет вставить инсертом
18.10.2013 16:18
Troll
 
Самое простое - загрузить руками картинку, выгрузить ее так же, как собираетесь грузить и сравнить с картинкой. Сравнительно недавно формат хранения картинок поменялся, не факт, что он и потом не поменяется...
18.10.2013 17:46
karachun
 
Цитата:
Dim товарищ, видимо, не хочет руками привязывать картинки, а хочет вставить инсертом
именно так.
У меня был СМ 23 версии и от туда я картинки выгружал и файл. Загонял Blob в поток., находил начfло jpeg формата и с этого байта до конца в файл.
При переходе с 23 на 30 версию, картинки пропали. Делали переход сопровождение С+. Теперь у меня все картинки в каталоге. Их 25 тысяч штук. Руками это прикрепить не реально.
Я пробовал проанализировать blob и приписать "префикс" jpeg-файлу, но меня не получилось. СМ не открывает такой файл.
Может кто делал выгрузку или загрузку, на пример для сайта.
Как вы картинки в интернет-магазины грузите?
18.10.2013 17:51
karachun
 
Цитата:
Dim товарищ, видимо, не хочет руками привязывать картинки, а хочет вставить инсертом
Цитата:
Mtirt О каком формате СМ речь? Супермаг вроде как в базе данных картинки хранит, в BLOB-полях...
в blob лежит не "чистый" jpeg. А картинка + префикс от С+. И если из blob сохранить содержимое в файл, то это будет не jpeg и ОС его не распознаёт как графический формат. А если префикс убрать, то ОС его видит как jpeg и миниатюру создаёт и т.д.
18.10.2013 18:02
OlegON
 
Процедура выгрузки картинок в директорию
Судя по этому скрипту, сейчас лежит именно чистый... Нет?
21.10.2013 10:31
karachun
 
вот, что у меня лежит в smcardimage.theimage :

Имя файла "артикул_0001.jpg"
То что выделено это и есть префикс от СМ. Если его удалить, но файл превратиться и jpeg. Вся проблема в том, что этот префикс разный для каждого файла.
21.10.2013 11:35
karachun
 
При чём, как выгрузить картинку я знаю. Вот как загрузить её. Когда выгружаю я нахожу "FF D8" и это начало jpуg, и до конца, затем + ".jpg" и всё. А вот наоборот не получается. Я брал файлы с одинаковым именем, но с разным содержимым и префикс получался разным. Как вычислить что вписать между "SUPERMAG" и "ff d8"?
21.10.2013 11:49
konst
 
а если наоборот, два загрузить 2 одинаковых файла, но с разными именами "артикул_0001" и "артикул_0002"
и сравнить в чем будет отличие заголовка...
21.10.2013 11:55
OlegON
 
А классификатор не различается? Я тоже теряюсь в догадках. Может, в UTF посмотреть, что там в точках?
21.10.2013 12:32
karachun
 
Один и тот же файл имена разные:
артикул : 000581
имя файла : qqq_1.jpg

артикул : 009721
имя файла : qqq_2.jpg


"Заголовки" разные
21.10.2013 12:33
OlegON
 
Я вижу только разницу в последнем байте. Номер?
21.10.2013 12:34
karachun
 
Цитата:
OlegON А классификатор не различается?
В последнем примере ветка классификатора одна.
21.10.2013 12:46
karachun
 
Посмотреть в UTF. Это открыть в NotePAD++ и поменять кодировку на UTF-8?:
21.10.2013 12:52
Dim
 
а в хвост дополнительно ничего не пишется?
21.10.2013 12:59
karachun
 
У оригинала и у двух blob из примера хвосты одинаковые. Т.е. только заголовки отличаются.
21.10.2013 16:21
vdm
 
Все же позаливай и посравнивай файлы
- одинаковый размер и разные имена
- одинаковые имена и разный размер

На старой версии СМ разбирал этот супермаговский заголовок и "в голове" он вроде успешно раскладывался на части. Но на практике заливку не делал, не было необходимости.
Там фиксированный кусок, потом длина имени файла + само имя, а дальше не помню.
22.10.2013 11:30
karachun
 
так вот и вопрос то в том, что это "дальше". Первая часть это "SUPERMAG" + "...", вторая - имя файла. А вот дальше - вопрос. То это три точки, то точка цифра точка, то двоеточие и две точки. Как вычислить что это?
22.10.2013 12:22
baggio
 
Давайте по порядку:

от топик стартера по больше инфы... вплоть до времени заливки...

Давайте составим список того чтобы это могло быть:
ИМХО
1. Артикул побайтно (кстати где храняться ссылки на картинки т.е. привязка к артикулу?)
2. Ветка классификатора...
3. Хэш по времени...
4. Тип картинки (jpg,png, bmp и т.д.)


Кстати:
Наверняка за заливку отвечает функция (какая?), может её поковырять?
22.10.2013 12:50
karachun
 
вот сама картинка (оригинал):
https://storage.olegon.ru/supermag/u...ysanthemum.jpg
вот картинка qqq_1.jpg (тот же оригинал, только переименованный):
https://storage.olegon.ru/supermag/upload/qqq_1.jpg
вот картинка qqq_2.jpg (тот же оригинал, только переименованный):
https://storage.olegon.ru/supermag/upload/qqq_2.jpg
вот информация о ветке классификатора :
https://storage.olegon.ru/supermag/upload/tree.csv.7z
вот содержимое поля THEIMAGE для артикула 000581 в таблице smcardimage :
https://storage.olegon.ru/supermag/upload/qqq_1.7z
тоже самое для 009721 :
https://storage.olegon.ru/supermag/upload/qqq_2.7z
Тип картинки : jpg

Что ещё нужно для анализа? скажите я предоставлю.
22.10.2013 12:57
konst
 
в таблице лежит - артикул - BLOB (картинка)
я думаю сохранить в БД побольше картинок (10-20) - и уже исходя из статистики попытаться понять что это за данные...
22.10.2013 15:02
baggio
 
Цитата:
karachun вот содержимое поля THEIMAGE для артикула 000581 в таблице smcardimage :
https://storage.olegon.ru/supermag/upload/qqq_1.7z
тоже самое для 009721 :
https://storage.olegon.ru/supermag/upload/qqq_2.7z
Тип картинки : jpg
Файлы совпадают на 100%...
Если мы на разные артикулы льём одинаковые файлы и получаем одинаковый результат то:
1. Артикул и карточка не причем... как и место расположения в классификаторе...
2. Значит дело в самих картинках... возможно это размер, jpeg который не всегда jpeg а скажем Jpeg2000 вообщем теперь ищем две картинки желательно с одинаковым разрешением которые дадут РАЗНЫЙ результат... возможно что написано 111.jpg, а это далеко не JPG а PNG какой... EXIF может показать совсем другое...
22.10.2013 15:51
vdm
 
Если не поменяли в последних версиях, то
- в "Изображение" можно загрузить все что угодно, любой файл
- для формирования заголовка в theimage тип и содержание файла значения не имеют
- непонятна в заголовке одна часть - последние 3 байта после имени файла. Прикидочно зависит только от артикула и имени файла, т.о. похоже на некую чексумму. Можно попытаться забить туда нули.
22.10.2013 16:11
baggio
 
Цитата:
vdm Если не поменяли в последних версиях, то
- в "Изображение" можно загрузить все что угодно, любой файл
- для формирования заголовка в theimage тип и содержание файла значения не имеют
- непонятна в заголовке одна часть - последние 3 байта после имени файла. Прикидочно зависит только от артикула и имени файла, т.о. похоже на некую чексумму. Можно попытаться забить туда нули.
не похоже...
пример выше...
разные артикулы...
разные названия файлов...
файл один и тотже...
результат один...
значит дело в самом файле... его типе... имени... атрибутах...
надо найти... в чем дело...
22.10.2013 16:25
karachun
 
артикулы разные, имена файлов разные, файл один и тот же. Это jpeg. Взят из дистрибутива windows 7, я думаю такой есть почти у каждого. А вот в blob разные. Отличие в последних 3-х байтах заголовка.
22.10.2013 16:27
karachun
 
Только что попробовал загрузить один и тот же файл, с одним и тем же именем в два артикула од ной ветки. Три последних байта разные.
22.10.2013 16:34
vdm
 
Таки ни при чем файл.

Вручную в hex редакторе сделал файл с супермаговским заголовком заголовком (с нулями в 3-х последних), залил его в theimage. Супермаг не ругается, файл открывает.
05.11.2013 08:46
karachun
 
Вот ответ из С+:
Содержание поля полной картинки включает префикс и саму картинку. Префикс состоит из 8 байт подписи "SUPERMAG", 4 байта целое число - номер версии = 1, 4 байта длина имени файла - цело число, имя файла и 3 байта, которые заполняются случайными символами.
Опции темы


Часовой пояс GMT +3, время: 07:12.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.