Загрузите файл docx, загруженный с диска Google, используя скрепку - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу загрузить файл docx, скачанный с диска Google, используя gem paperclip , но получаю Недопустимая ошибка типа контента .Ниже мой код

has_attached_file :initial_document
validates_attachment :initial_document, content_type: {content_type: %w(image/jpeg image/jpg image/png application/pdf application/msword application/vnd.openxmlformats-officedocument.wordprocessingml.document)}

Я могу загрузить файл, созданный из MS Word, но не с Google Drive.Во время отладки я обнаружил, что тип содержимого файла .docx: application / zip Я использую Rails 5.0 и paperclip 5.1

1 Ответ

0 голосов
/ 19 сентября 2018

Проблема в строке ниже,

validates_attachment :initial_document, content_type: {content_type:

здесь, content_type повторяется, что является неправильным синтаксисом.

заменить выше на

validates_attachment :initial_document, 
  content_type: %w(
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
    application/pdf
    application/msword
    application/word
    application/x-msword
    application/x-word
    application/zip
    text/plain
    image/jpeg 
    image/jpg 
    image/png 
  )

Здесь application / zip важно для файла .docx

Я протестировал вышеуказанные изменения, и объект документа успешно создан, как показано ниже

    #<Document:0x0d0bd8f0> {
                                :id => 1,
           :document_list_file_name => "sample-document.docx",
        :document_list_content_type => "application/zip",
           :document_list_file_size => 12711,
          :document_list_updated_at => Wed, 19 Sep 2018 11:56:02 UTC +00:00
    }

Надеюсь, это решит вашу проблему.

...