Ruby on rails Can';在Heroku上使用carrierwave上传PDF?
在我的rails 4应用程序中,我使用carrierwave将文件上传到google云存储。我能够成功上传图像文件,但PDF无法工作。它显示以下错误: 不允许上载“pdf”文件,允许的类型:jpg、jpeg、gif、png 这是我的上传程序:-Ruby on rails Can';在Heroku上使用carrierwave上传PDF?,ruby-on-rails,pdf,heroku,carrierwave,ruby-on-rails-4.2,Ruby On Rails,Pdf,Heroku,Carrierwave,Ruby On Rails 4.2,在我的rails 4应用程序中,我使用carrierwave将文件上传到google云存储。我能够成功上传图像文件,但PDF无法工作。它显示以下错误: 不允许上载“pdf”文件,允许的类型:jpg、jpeg、gif、png 这是我的上传程序:- # encoding: utf-8 require 'carrierwave/processing/mime_types' class AttachmentUploader < CarrierWave::Uploader::Base incl
# encoding: utf-8
require 'carrierwave/processing/mime_types'
class AttachmentUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include CarrierWave::MimeTypes
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :set_content_type
def extension_white_list
%w(jpg jpeg gif png pdf)
end
end
编码:utf-8
需要“carrierwave/processing/mime_类型”
类AttachmentUploaderclass Attachment < ActiveRecord::Base
mount_uploader :attachment, AttachmentUploader
# Associations
belongs_to :attached_item, polymorphic: true
# Validations
validates_presence_of :attachment
validates_integrity_of :attachment
# Callbacks
before_save :update_attachment_attributes
# Delegate
delegate :url, :size, :path, to: :attachment
# Virtual attributes
alias_attribute :filename, :original_filename
private
def update_attachment_attributes
if attachment.present? && attachment_changed?
self.original_filename = attachment.file.original_filename
self.content_type = attachment.file.content_type
end
end
end
类附件
更新:
在本地机器上测试时,它工作,但在heroku上不工作。在development env上,它可以正常工作,我可以检查上传到google storage的文件。但在heroku上显示错误“您不允许上载“pdf”文件,允许的类型:jpg、jpeg、gif、png”
更新:
我的应用程序中还有另一个上传程序ImageUploader。当我将其扩展名设置为包含pdf时,附件上传器也可以工作。这是怎么回事。我的所有上传程序中是否需要相同的分机白名单
提前谢谢 在发布完整的错误日志后,您是否对此模型进行了任何验证?您是否碰巧使用了图像字段?奇怪。如果将
pdf
放在列表的开头会发生什么?我正在使用rails\u admin并使用它上载文件。它应该可以工作。删除此验证:附件的完整性\u
并重试一次。发布完整的错误日志,您是否对此模型进行了任何验证?您是否碰巧使用了图像字段?奇怪。如果将pdf
放在列表的开头会发生什么?我正在使用rails\u admin并使用它上载文件。它应该可以工作。删除此验证:附件的完整性,然后再试一次。