我收到字符串表示一个字节数组到Web服务:
" / 9J / 4AAQSkZJRgABAQEAYABgAAD / 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL ......"
我想知道如何将bytes数组转换为image bin文件。有没有宝石要做,或者我需要用文件库来操作它。
我在Ruby中阅读了一些示例但不是很好的解决方案。
我是否首先需要将字符串转换为字节数组并在文件之后?我必须使用的扩展是什么?
非常感谢。
答案 0 :(得分:2)
回答问题的第1部分 您的输入看起来像base64。所以我假设您需要先从base64解码:
binary_data = Base64.decode64(data_from_web_service)
File.open('file_name', 'wb') {|f| f.write(binary_data)}
第二部分的答案(如何检测文件扩展名)是比较棘手的部分。 Web服务是否会返回有关此内容的任何信息?如果没有,您可以通过分析数据的幻数来成功。
答案 1 :(得分:-1)
你能不能把字符串写到文件中:
File.open('picture.jpg', 'w') { |file| file.puts(string) }