回形针:如何上传 Powerpoint 演示文稿文件

Paperclip: How to upload Powerpoint presentation files

如何使用 rails 回形针处理器上传 powerpoint 演示文稿文件和其他办公相关文档。

这是我的代码。 在mime_types.rb

Mime::Type.register "application/vnd.openxmlformats-officedocument.wordprocessingml.document", :docx
Mime::Type.register "application/vnd.openxmlformats-officedocument.presentationml.presentation", :pptx
Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx

在我的模型中asset.rb

has_attached_file :attachment, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :attachment, :content_type => ["application/pdf", "application/zip", "application/x-zip", "application/x-zip-compressed","application/octet-stream","image/jpg", "image/png", "image/jpeg", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"]

我收到这个错误 资产附件内容类型无效 资产附件无效

试试这个 mime 类型的 ppt,

Mime::Type.register "application/vnd.openxmlformats-officedocument.presentationml.presentation", :pptx

使用下面的 link 以获得更多参考。

https://technet.microsoft.com/en-us/library/ee309278(v=office.12).aspx

而且,您还可以合并更多的 mime 类型,如下所示

Rack::Mime::MIME_TYPES.merge!({
  ".pptx"     => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
  ".xlsx"     => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
})

在您的模型中

validates_attachment_content_type :attachment, :content_type => ["application/pdf", "application/zip", "application/x-zip", "application/x-zip-compressed","application/octet-stream","application/vnd.ms-office","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation","image/jpg", "image/png", "image/jpeg"]

在你的mime_types.rb

Mime::Type.register "application/pdf", :pdf
Mime::Type.register "application/xls", :xls
Rack::Mime::MIME_TYPES.merge!({
    ".xls"     => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",  
    ".xlsx"     => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    ".ppt"     => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    ".pptx"     => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    ".doc"     => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    ".docx"     => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
})