Tag: base64

Base64编码的字符串到文件(Ruby on Rails)

我要求在使用Base64编码对zip文件进行编码后将其发送到ROR应用程序。 我应解码它,将其保存为zipfile并解压缩并执行一些操作。 他们通过POST方法将zip文件编码数据作为zip参数发送。 这是我在代码中所做的。 require ‘rubygems’ require ‘zip/zip’ require ‘base64’ def get_pdf encoded_data = Base64.decode64(params[:zip]) File.open(“#{RAILS_ROOT}/zip_archive/zip_file.zip”, “w”) {|f| f.write encoded_data} unzip_file(“#{RAILS_ROOT}/zip_archive/zip_file.zip”, “#{RAILS_ROOT}/unzipped/”) …(using @file_path, do stuff) end def unzip_file (file, destination) destination = File.join(destination, File.basename(file, “.zip”)) Zip::ZipFile.open(file) { |zip_file| zip_file.each { |f| f_path=File.join(destination, f.name) FileUtils.mkdir_p(File.dirname(f_path)) zip_file.extract(f, f_path) unless File.exist?(f_path) } } @file_path = destination end […]

使用Base64中的图像生成带有图像的PDF

我想在一个pdf中保存多个png。 我从API调用收到的PNG到Endicia Label Server,它给我一个Base64编码图像作为响应。 基于这个问题: 如何在不保存Rails服务器的情况下使用Prawn将base64字符串转换为PNG def batch_order_labels @orders = Spree::Order.ready_to_ship.limit(1) dt = Date.current.strftime(“%d %b %Y “) title = “Labels – #{dt} – #{@orders.count} Orders” Prawn::Document.generate(“#{title}.pdf”) do |pdf| @orders.each do |order| label = order.generate_label if order.international? @image = label.response_body.scan(/([^]*)/imu).flatten.last else @image = label.image end file = Tempfile.new(‘labelimg’, :encoding => ‘utf-8’) file.write Base64.decode64(@image) file.close pdf.image file […]

将base64图像转换为Carrierwave的StringIO

我希望有人能帮助我理解这一点。 我有一个图像的base64字符串: “data:image/jpeg;base64,/9j/4AAQSkZJRgABA…” 我想使用ember的createRecord和commit()发送它: this.get(‘store’).createRecord(Emb.Painting, {name: newName, image: newImage}); 然后我想将它转换为StringIO for carrierwave并保存它: StringIO.class_eval { def original_filename; “stringiohaxx.jpg”; end } io = StringIO.new(Base64.decode64(params[:painting][:image])) @painting = Painting.create(:name => params[:painting][:name], :image => io ) 图像已保存。 图像总是被破坏。 我是否需要将我的base64字符串分解为: data: ‘/9j/..’ type: ‘image/jpeg’ ? 任何帮助赞赏。

在rails 3和rails 4.1之间共享cookie

我想在Rails 3和Rails 4.1应用程序之间共享cookie。 问题是Rails 3 cookie只是base64编码,但Rails 4.1 cookie是加密的。 有没有办法让Rails 3和Rails 4.1使用兼容的cookie? 目前最简单的方法似乎是降级到Rails 4.0

使用回形针保存从api获取的base64图像

我有一个带有图像属性的Photo模型。 该图像包含从api获得的base64字符串。 我需要运行一个after_create回调,我想我可以使用Paperclip将图像保存到回调中的磁盘,因为它可以节省我在公共文件夹中实现文件夹结构并生成缩略图的一些工作。 有一个简单的方法吗?

从base64数据创建图像文件

我有base64编码的图像数据。 我正在粘贴前几个字符 string=’data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD /2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopG R8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgo……’ 我正在ruby中跟踪它 decoded_string=Base64.decode64 string output_file = Tempfile.new([‘image’,’.jpeg’]) output_file.binmode output_file.write image 在此之后,当我打开’image.jpeg’时,它给出了错误 Error interpreting JPEG image file (Not a JPEG file: starts with 0x75 0xab) 我也试过了 File.open(‘a.jpeg’, ‘wb’) do|f| f.write decoded_string end 在这种情况下,我也得到了同样的错误。 我究竟做错了什么?

Github API响应“内容无效Base64”

当使用API​​向github发布某个非常简单的内容时,我收到了“内容无效Base64”错误。 内容是 unit = $(“”); 我使用Base64.urlsafe_encode64来编码内容。 content = ‘unit = $(“”)’; url = “https://api.github.com/repos/#{github_user}/#{github_repo}/contents/#{path}” RestClient.put(url, { message: “my message”, content: Base64.urlsafe_encode64(content), encoding:”base64″ }.to_json, { params:{access_token:access_token },accept:’json’}){ |response, request, result| puts response.code puts response } 我得到了这个回应: 422 {“message”:”content is not valid Base64″, “documentation_url”:”https://developer.github.com/v3/repos/contents/”} 我不明白这对github来说是不是有效的base64。 并且所有提交的数据都不会发生。 content=’unit = $(“”)’ Base64.urlsafe_decode64(Base64.urlsafe_encode64(content))==content => true 我究竟做错了什么?

Ruby 1.9 Base64编码写入文件错误

我收到以下错误: Encoding::UndefinedConversionError: “\x81” from ASCII-8BIT to UTF-8 以下都在Ruby 1.8.7中工作,所以我认为这与Ruby 1.9如何处理编码有关,但我不太清楚如何解决它。 我目前正在使用Ruby 1.9.3。 decode_base64_content = Base64.decode64(content) File.open(“index.txt”, “w”) do |f| f.write(decode_base64_content) end 内容如下: CgcZAAEAAABQcmVzZW50YXRpb24RMQAGSUIyQjdCNjBCLUZBRTMtMjVGMS1DQ0E1LTM1REM4NjBC MDlCRgYCBklBMjk2OTQ4MC0yMkQyLURENzMtQUY5Ni1DNURDMDIyQTVFRjkGBAZJNUJCRTI3REYt Q0QyRC03NkY0LTk1MUMtQzYxRkYxQjgxN0Y4BgYGSTg0QjM3M0FGLTVFNjEtMkMwMy1DMTBCLUNB MUZCMDY0Q0NERQYIBkkwOTIwNDRBRC02QTQ5LTg0NzEtMzc5QS0yRjQxMzU2MUY0OUQGCgZJODlC NDczOTUtOTk1MS01OTk1LTk4NDctNkU1NjI4RjhGNjYzBgwGSThCQ0RFM0VDLUMyREItMDkyNy1G NTFFLTJGNDE4OEMzNURDMwYOBklGMDk5QkRDOC1GOEFDLTg1QjEtMjgzMC0yRjQ5RkZFMDFCNUEG EAZJNTJCOEQ3RUItMzZEQi1CMjNELUU2MTYtMkY0QjUxNDIwMjBFBhIGSUM2RjkzNjgwLTFBNjMt NzU5Qi0yOEE5LTUwMDc2NjZCOEYyNgYUBkk2MDIwRjg4Ni1BQTk4LTRBNDQtQjZGNS1DNDAyMTMz NzEzOEQGFgZJRDFEMjcxMzYtQTkwQy0xRDBBLTc4RjAtQ0ExRUFCQzgzRUE1BhgGSUZBRDQzMjI1 LTUwODctNENEMy1ENjkzLUQ4Qzg0NDc3RTMyRAYaBklFMjc5NjA5Mi0xNUYzLUY4NkItMEFBQi0x MUEzQjIwNEFBRTIGHAZJNERFNEYzNUItQzAyNy1DOTQ1LTY2MzUtMDE4NTZDRTdBMDM3Bh4GSUM4 NjA4RkI4LUI4RDEtMjM5RS04ODY4LUNBMjIzNUUwNjk5MAYgBkk4QjcxOEFDRi03NEE0LTA4REQt QzZENC1DQTEyNDQwRTkzOUYGIgZJQjA3NTk0OEMtQzA3MS0wQTQ3LTYxNDQtNEU1OUIwN0QwQ0VF BiQGSUM2M0VFQkU1LUZFOEEtRUVDMC1GNDFFLTc3QTI3Qzg2RDE1OAYmBkk5QkQ2M0NEQi02NDg2 LTM2OUQtMTY0NS0xMDIzMTQ5Njk1OUQGKAZJOTI3NDUzNDEtRUYzRC04MEU1LUZDQkUtQ0EyMTZG Q0FGRTcyBioGSUI3MzlFMTBFLTk2M0QtMDA0Ny1EMkU1LUNBMjA2ODM2MjZFNgYsBkk4RUY5QkZB Ni0wNDAyLTQwQUQtRjAxQi0xMTRBNDBFODMwRjMGLgZJQjY2N0YxODktNzQ4My05RkE4LTYwMDkt 持续约3000行。 如何解决此转换错误? 上面的代码段工作但在3000行的某处,我认为base64解码方法使用无效编码。 谢谢!

为什么我不能使“OpenSSL with Ruby”和“Command line OpenSSL”可以互操作?

在尝试建立可互操作的加密系统时,我在轻松的“概念validation”期间遇到了一种奇怪的情况。 我在Ruby中编写了以下代码: 从我的文件系统上的虚拟文本文件创建加密文件 解密加密文件 与原始文件进行比较,并检查它们是否相同 这是代码: require ‘openssl’ require ‘base64’ # Read the dummy file data = File.read(“test.txt”) # Create an encrypter cipher = OpenSSL::Cipher::AES.new(256, :CBC) cipher.encrypt key = “somethingreallyreallycomplicated” cipher.key = key # Encrypt and save to a file encrypted = cipher.update(data) + cipher.final open “encrypted.txt”, “w” do |io| io.write Base64.encode64(encrypted) end # Create […]

如何将php crypt函数(SHA512)转换为ruby?

注意:我不是在寻找解决方法,我正在寻找一个简单的ruby解决方案! 这个问题与这个问题类似,但它没有回答,它只是一个shell命令行的解决方法。 我想生成一个sha512加密字符串,它与debian / etc / shadow中的格式兼容。 以下用php创建一个正确的字符串: $salt = ‘fGn9LR75’; $hash = crypt(‘test’, ‘$6$’.$salt); // hash is: // $6$fGn9LR75$YpI/vJHjEhvrYp5/eUSRinpiXdMthCxFWSEo0ktFNUaRBsA7pCWYzzmQptmnfyHno9YEJFNHYuESj3nAQmSzc1 据我所知,这是一个普通的盐渍base64编码字符串。 sha生成方法的规范就在这里