Перейти к содержимому


Фото
- - - - -

Ресайз не делается. Кириллица.


  • Чтобы отвечать, сперва войдите на форум
8 ответов в теме

#1 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 10.04.2018 - 15:48

В БД файл изображения хранится в виде ссылки на изображение на сайте поставщика. 

На страницу сайта картинка пытается вывестись вот в таком виде:

http://(мой сайт)/files/products/http%253A%252F%252Fwww.(сайт поставщика).ru%252Fuserfiles%252Fshop_cat_images%252F%252089.800x800w.jpg?0f968addbee2cd6a6e9419ecf9eeedf9

 

То есть картинка не загрузилась. В папке Originals файла нет.

Заметил такой факт, что изображения, в именах которых есть цифры, загрузились на сайт.

Например название было "картинка45.jpg" загружена в originals под названием "45.jpg"

 

То есть не загружаются изображения вида "картинка.jpg", видимо отбрасывается название полностью.

 

Где проблема? Хостинг? 

Или надо добавить транслит в функцию download_image?



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 705 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.04.2018 - 15:58

Транслитерация картинок в симпле есть api/Image.php функция correct_filename

#3 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 10.04.2018 - 16:46

Транслитерация картинок в симпле есть api/Image.php функция correct_filename

О, спасибо!

Странно, почему она вызывается только в функции upload_image, а в download_image остается все как есть?

Как вы думаете, стоит самостоятельно туда ее добавить и при скачивании сохранять в латинице?



#4 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 705 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.04.2018 - 19:01

О, спасибо!
Странно, почему она вызывается только в функции upload_image, а в download_image остается все как есть?
Как вы думаете, стоит самостоятельно туда ее добавить и при скачивании сохранять в латинице?

Вы картинки как заливаете? Путём вставки ссылки на изображение?
Если да, то функция upload_image как раз таки вызывается в simpla/ProductAdmin.php, потом происходит ресайз и если файл в БД записан как удалённый то выполняется функция download_image.
На самом деле разработчик таких костылей навешал с работой изображений что проще плюнуть и сделать заново.

Изменено: Noxter, 10.04.2018 - 19:01


#5 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 10.04.2018 - 20:39

Вы картинки как заливаете? Путём вставки ссылки на изображение?
Если да, то функция upload_image как раз таки вызывается в simpla/ProductAdmin.php, потом происходит ресайз и если файл в БД записан как удалённый то выполняется функция download_image.
На самом деле разработчик таких костылей навешал с работой изображений что проще плюнуть и сделать заново.

У меня все товары загружаются из CSV, соответственно в нем стоит ссылка на изображение на сервере поставщика.

То есть пока он не загрузится на сервер, в БД он хранится в виде ссылки.

А загрузиться он видимо не может из-за ошибки при попытке сохранения. Поэтому такая ерунда получается.


Изменено: kossik, 10.04.2018 - 20:41


#6 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 10.04.2018 - 21:08

Дополнение:

Методом тыка определил, что проблема не в кириллице, а в пробеле в имени файла у поставщика.

Мало того, что он на кириллице, так еще и с пробелами.

Например "картинка мини.jpg"

В результате после

$basename = explode('&', pathinfo($filename, PATHINFO_BASENAME));

у нас остается только " мини.jpg"

 

А вообще зачем нужна вот эта часть кода: explode('&'

В какой ситуации в filename может появиться &?

Может просто взять имя файла после последнего '/'?


Изменено: kossik, 10.04.2018 - 21:53


#7 phukortsin

phukortsin
  • Пользователь
  • 469 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 11.04.2018 - 09:18

А вообще зачем нужна вот эта часть кода: explode('&'
В какой ситуации в filename может появиться &?
Может просто взять имя файла после последнего '/'?

Так надо.

http://forum.simplac...rl-изображений/

#8 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 12.04.2018 - 14:31

Ну все-таки ответа нет. Методы тыка ни к чему не приводят

Может есть какое-то решение? Кто-нибудь знает что делать с файлами на кириллице и с пробелами?



#9 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 16.04.2018 - 20:48

setlocale(LC_ALL, "ru_RU.UTF-8");

вот в чем косяк был.

на этом хостинге не настроена локаль была

написал локаль в файле класса simpla, все заработало


Изменено: kossik, 16.04.2018 - 20:48





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых