【问题标题】:how to convert data URI to file in Ruby如何在Ruby中将数据URI转换为文件
【发布时间】:2014-02-13 07:19:40
【问题描述】:

如何将来自FileReader API 的结果的数据URI 转换为可以保存在Ruby 文件系统中的图像文件?

我目前正在尝试做的是使用 base64 解码将 data_uri 字符串如下所示:data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgA... 转换为 base 64 编码字符串,因为根据此stackoverflow answer 我需要将所有空格实例替换为+。答案是 PHP,但我目前正在研究 Ruby 和 Sinatra,所以我不确定它是否仍然适用,但是当使用等效代码时:

src = data_uri.gsub! ' ', '+'
src = Base64.decode64(src)
f = File.new('uploads/' + 'sample.png', "w")
f.write(src)
f.close

我收到以下错误:

undefined method `unpack' for nil:NilClass

我在这里想要实现的是能够将数据 URI 转换为文件。

【问题讨论】:

    标签: ruby sinatra data-uri


    【解决方案1】:

    没有必要重新发明轮子。使用data_uri gem。

    require 'data_uri'
    
    uri = URI::Data.new('data:image/gif;base64,...')
    File.write('uploads/file.jpg', uri.data)
    

    【讨论】:

    • 我正在使用 RMagick 和图像 blob,data_uri gem 为我工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2021-04-03
    • 2023-04-06
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多