如何在 Ruby 上打开 base64 电子表格
How to open base64 spreadsheet on Ruby
我一直在尝试操作我从客户那里收到的 base64 编码文件。
我目前正在使用 https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md 来操作它,但是,似乎没有任何方法可以直接从 base64 blob 打开文件,或者我应该先写入然后从中读取?这不会对服务器造成潜在的安全威胁吗?
例如,如果我收到一个文件:
file = params[:file] with contents:
data:application/vnd.ms-excel;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7
(我应该删除数据:application/vnd.ms-excel;base64, ?)
我想用这个打开它:
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open "#{Rails.root}/app/assets/spreadsheet/event.xls"
(或使用 blob 或临时文件)
很抱歉,如果它很明显,我已经找了好几个小时,但没有太多可用的信息,先尝试创建一个临时文件,但我认为这不受支持,而且我无法从文档中获得太多信息。
在黑暗中拍摄:也许对其进行解码,写入启用二进制的临时文件,然后将其提供给 Spreadsheet
?
tmpfile = Tempfile.new.binmode
tmpfile << Base64.decode64(params[:file])
tmpfile.rewind
book = Spreadsheet.open(tmpfile)
我一直在尝试操作我从客户那里收到的 base64 编码文件。
我目前正在使用 https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md 来操作它,但是,似乎没有任何方法可以直接从 base64 blob 打开文件,或者我应该先写入然后从中读取?这不会对服务器造成潜在的安全威胁吗?
例如,如果我收到一个文件:
file = params[:file] with contents:
data:application/vnd.ms-excel;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7
(我应该删除数据:application/vnd.ms-excel;base64, ?)
我想用这个打开它:
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open "#{Rails.root}/app/assets/spreadsheet/event.xls"
(或使用 blob 或临时文件)
很抱歉,如果它很明显,我已经找了好几个小时,但没有太多可用的信息,先尝试创建一个临时文件,但我认为这不受支持,而且我无法从文档中获得太多信息。
在黑暗中拍摄:也许对其进行解码,写入启用二进制的临时文件,然后将其提供给 Spreadsheet
?
tmpfile = Tempfile.new.binmode
tmpfile << Base64.decode64(params[:file])
tmpfile.rewind
book = Spreadsheet.open(tmpfile)