I\'m integrating my Ruby on Rails app with a usps shipping system. Once you make a postage request, you pay for that postage and it\'s nonrefundable.
Postage reques
Other answers are pretty close, but usually assume that base64 stream will contain PNG data. This is not always the case so I suggest to use mime types library to establish correct file extension:
REGEXP = /\Adata:([-\w]+\/[-\w\+\.]+)?;base64,(.*)/m
data_uri_parts = data_url.match(REGEXP) || []
extension = MIME::Types[data_uri_parts[1]].first.preferred_extension
file_name = "myfilename.#{extension}"
File.open(file_name, 'wb') do |file|
file.write(Base64.decode64(data_uri_parts[2]))
end