【问题标题】:How to submit a base64 encoded file to paperclip?如何将base64编码文件提交到回形针?
【发布时间】:2017-04-27 12:10:31
【问题描述】:

我有一个 react native 应用程序,它从设备中读取图像文件作为base64 字符串,并通过axios 将其提交给rails 应用程序。以下是正在提交的部分数据:

/9j/4QBYRXhpZgAATU0AKgAAAAgABIdpAAQAAAABAAAAPgESAAQAAAABAAAAAAEBAAQAAAABAAAB4AEAAAQAAAABAAACgAAAAAAAAZIIAAQAAAABAAAAAAAAAAD/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAHgAoADASIAAhEBAxEB/8QAGgABAQEBAQEBAAAAAAAAAAAAAAcGBQECCP/EAEIQAQAAAAcMBwQKAwEBAQAAAAAHERJFg8LSAgMEBQYVFhdUVZKjARMUMmWU0SMxpOIhIiQlJidDUWFxN0GBkbEz/8QAGAEBAQEBAQAAAAAAAAAAAAAAAAUGBAH/xAAmEQEAAAIKAgMBAAAAAAAAAAAAgaEFERUWQkNiY8HhBAYSFCEi/9oADAMBAAIRAxEAPwD8vjbatccbTgHHd2TVrjjacA47uyDEjbatccbTgHHd2TVrjjacA47uyDpQNzxQ11JTbE35e9dnr2/b5PVdk+vJkRxypUmLv9EXv/59EfT1lYn2bD+C4tA2wxOsrE+zYfwXFo1lYn2bD+C4tA2wxOsrE+zYfwXFo1lYn

问题是,我不能直接将它添加到回形针。我应该怎么做才能让它发挥作用?

【问题讨论】:

  • 拒绝投票者:请考虑解释您的选择

标签: javascript ruby-on-rails react-native paperclip


【解决方案1】:

模型中附加文件的方法(本例中为Event):

  def add_picture(picture_64, picture_name)
    picture_data                   = Paperclip.io_adapters.for(picture_64)
    picture_data.original_filename = picture_name
    self.picture = picture_data
  end

控制器中的方法:

  def create_picture
    if params[:picture]
      picture_params = params[:picture]
      @event.add_picture(picture_params[:file_data], picture_params[:file_name])
    end
  end

一般来说,您只需要Paperclip.io_adapters.for(picture_64),它将为您生成Paperclip 可接受的必要对象。

【讨论】:

  • 嗨,我收到一条错误消息,提示 Paperclip::AdapterRegistry::NoHandlerError (No handler found for "/9j/4QBYRXhpZgAATU0AKgAAAAgABIdpAAQAAAABAAAAPgESAAQ...
  • 嗯....没错。 Paperclip 不适用于此类数据。您的 picture_64 应该有一些附加信息。类似前缀的东西。回形针的有效信息类型看起来像。 data:image/jpeg;base64,/9j/4QBYRXhpZgAATU0AKgAAAAgABIdpAAQAAAABAAAAPgESAAQ... 所以你需要知道文件类型。模式如下所示:data:#{file_type};base64,#{encoded64_file} 这是spec,用于从答案中测试控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多