如何将图像包含在CSV中

pal*_*ani 5 ruby-on-rails

在我的Rails应用程序中,Admin可以将用户数据导出为csv格式.我的应用程序中的每个用户都有他们的个人资料照片....我的客户想要将用户照片包含在CSV文件中..我不知道如何做到这一点.谁能帮帮我吗....

我正在使用fastercsv gem,这里有一些我的控制器代码供参考

在我的控制器中:

require 'fastercsv'

def getcsv
  entries = User.find(:all)

 csv_string = FasterCSV.generate do |csv| 

   csv << ["first_name","last_name","username","address","photo" ]

  entries.each do |e|
   csv <<  [e.first_name,e.last_name,e.username,e.address,e.photo.url]
  end
 end

  send_data csv_string,:type=>'text/csv;charset=iso-8859-1; header=present', :filename=>"entries.csv",:disposition => 'attachment'

  end
Run Code Online (Sandbox Code Playgroud)

gav*_*inb 11

将实际照片保存在CSV文件中在技术上是可行的,但非常不明智.CSV根本不适用于那种工作.您显然不能简单地将二进制图像数据嵌入到基于ASCII文本的CSV文件中.可以使用Base-64编码将8位二进制数据转换为7位文本,然后将其存储在CSV文件的其中一个字段中.(这也将扩大所需的存储量约20%).

但那么什么软件可以解码呢?您将不得不编写一些其他软件来将图像转换回另一端,这会破坏目的.此外,CSV文件的每一行都很庞大,可能会导致导入问题.

将配置文件照片导出为一组PNG会更好,并将文件名保存在CSV文件中以对应每条记录.


Ign*_*ams 5

CSV是纯文本。除非生成器和阅读器都同意格式,例如base64编码的PNG,否则无法包含图形数据。