图像上传AngularJs到Rails4 API

时间:2014-10-15 15:04:19

标签: angularjs ruby-on-rails-4 paperclip content-type paperclip-validation

我有一个angularJs应用程序,它将base64编码的图像(或文件)发送到我的rails4服务器api,后者使用回形针存储附件。一切正常,直到content_type_validation回形针。

出于某种原因,paperclip确定内容类型已被欺骗并收到以下错误消息:

[paperclip] Content Type Spoof: Filename 1413325092.jpg (["image/jpeg"]), content type discovered from file command: application/octet-stream; charset=binary. See documentation to allow this combination.

我使用以下代码创建回形针附件:

    def self.create_from_base64(base64_string)
        decoded_data = Base64.decode64(base64_string) 
        # create 'file' understandable by Paperclip
        data = StringIO.new(decoded_data)
        data.class_eval do
        attr_accessor :content_type, :original_filename
        end
        # set file properties
        data.content_type = 'application/octet-stream'
        data.original_filename = "#{Time.now.to_i}.jpg"
    end

我尝试了不同的东西,但出于某种原因,即使我设置data.content_type = 'application/octet-stream',错误也完全相同,而且回形针被欺骗了。

有什么想法吗?

谢谢,

编辑:

我有以下验证:

validates_attachment_content_type :file, :content_type => [/png\Z/, /jpe?g\Z/, /application\/octet-stream*/]

0 个答案:

没有答案