我想使用宝石回形针上传从Google驱动器下载的docx文件,但出现无效的内容类型错误。下面是我的代码
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驱动器上传文件。 在调试过程中,我发现.docx文件的内容类型为 application / zip 。我正在使用 Rails 5.0和paperclip 5.1
答案 0 :(得分:0)
问题在下面的行中,
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
)
应用/压缩对于.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
}
希望,这将解决您的问题。