2016-08-22 3 views
0

Мы используем камень refile для отображения изображений на нашей платформе, они хорошо работают в разных браузерах, за исключением Microsoft Edge. Есть ли другой формат или ограничение для Microsoft Edge, что я должен знать об этом?RoR/Refile Gem - изображения не загружаются в Microsoft Edge

(я не имею Microsoft Грань, поэтому не может проверить его непосредственно)

Любая помощь будет удивительно. Благодарю.

+0

id рекомендуем использовать https://www.browserstack.com, чтобы проверить его, и вы увидите ошибки из первых рук. Вы можете сделать бесплатную пробную версию. – DMH

+0

Я инженер в команде Microsoft Edge. Мы предоставляем бесплатные виртуальные машины для тестирования. Вы можете найти их на странице [http://edge.ms] (https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/). Изображения [появляются для меня] (http://i.stack.imgur.com/kjQfD.png). – Sampson

ответ

1

Я проверил с MS Edge 25.10586.0.0/EdgeHTML 13.10586, и изображения не были отображены.

Я предполагаю, что это происходит потому, что изображения отправляются как приложение/октет-поток, а у Edge недостаточно информации для их отображения (необходимо подтвердить).

Но refile github page вы могли видеть, что можно добавлять метаданные для каждого загруженного файла, как:

class StoreMetadata < ActiveRecord::Migration 
    def change 
    add_column :users, :profile_image_filename, :string 
    add_column :users, :profile_image_size, :integer 
    add_column :users, :profile_image_content_type, :string 
    end 
end 

Эти поля будут заполнены автоматически после загрузки файла и исправляет проблему на моем REFILE пример приложения.

Предупреждение: Будьте осторожны со следующими действиями, пожалуйста, сделать несколько тестов, прежде чем делать это на производственной среде

Можно добавить недостающие информацию к существующим файлам.

В настоящее время Refile использует только расширение имени файла для извлечения содержимого. Поэтому нам нужно извлечь контент-тип с содержимым файла и создать имя файла с соответствующим расширением для каждого загруженного файла.

Существует, вероятно, много способов сделать это. Я опишу метод, который я использовал в моем приложении refile.

Вот моя модель

class User < ActiveRecord::Base 
    attachment :profile_image 
end 

пользователь Первый запуск предыдущей миграции добавить недостающие поля.

В gemfile добавьте драгоценный камень mimemagic и запустите bundel install. Этот контент может определять контент-тип файла.

Затем для каждого User выведите содержимое профиля profile_image и добавьте правильное имя файла.

User.all.each do |u| 
    subtype = MimeMagic.by_magic(u.profile_image.read).subtype 
    u.profile_image_filename = "profile_image.#{subtype}" if u.profile_image_filename.nil? 
    u.save 
end 

И все.

+0

Вау, спасибо, что нашли время. Я начну смотреть в этом направлении. Еще раз спасибо. :) – Guillermo

+0

Эй @YannVery есть простой способ добавить информацию о существующих файлах? – Guillermo

+0

@Guillermo, я только что обновил свой ответ. –