我一直在尝试处理一个从我的客户那里收到的base64编码的文件。
我目前使用的是 https:/github.comzdavatzspreadsheetblobmasterGUIDE.md。 然而,似乎没有任何方法可以直接从base64 blob中打开一个文件,或者我应该先写下它,然后再从它中读取,这不会对服务器造成潜在的安全威胁吗?
例如,如果我收到一个.NET文件,我应该先写一个文件,然后再读。
file = params[:file] with contents:
data:application/vnd.ms-excel;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7
(我是否应该去掉data:applicationvnd.ms-excel;base64,?)
我想用这个打开它。
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open "#{Rails.root}/app/assets/spreadsheet/event.xls"
(或者用一个blob或temp fle)
对不起,如果这很明显的话,我找了好几个小时都没有什么信息,我先试着创建一个临时文件,但我觉得不支持,而且我也没有从文档中得到什么。
射在黑暗中。也许可以把它解码,写到二进制的tempfile里,然后再把它输入到... ... Spreadsheet
?
tmpfile = Tempfile.new.binmode
tmpfile << Base64.decode64(params[:file])
tmpfile.rewind
book = Spreadsheet.open(tmpfile)