如何将图像包含在CSV中

在我的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 <'text/csv;charset=iso-8859-1; header=present', :filename=>"entries.csv",:disposition => 'attachment' end 

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

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

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

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

你可以尝试添加

  • 链接到图像文件
  • 单行base64编码的字符串

CSV(逗号分隔值)不是适合二进制数据的格式,但是将二进制数据保存到文本文件的一般经验法则是将其转换为适合文本文件的格式,例如Base64或文本表示Hex中的原始数据。

您考虑过使用SVG格式吗? 您应该能够将xml嵌入到csv中。