Rails 重命名临时文件
Rails Rename tempfile
我正在使用 roo-rb 访问上传的文件。我的代码是这样的:
s = Roo::Excelx.new(params[:upload][:file].tempfile.path)
但我遇到了问题,因为生成的临时文件没有扩展名,我遇到了这个异常:
.../AppData/Local/Temp/RackMultipart20150216-10192-13yn50s is not an Excel-xlsx file
有没有办法重命名 tempfile.path
以使其具有适当的扩展名 (xlsx)?或者有没有更优雅的方法来解决这个问题?
我已经使用 fileutils
成功地重命名了一个临时文件(即使部署在 Heroku 上)。这是代码:
require 'roo'
require 'fileutils'
tmp = params[:upload][:file].tempfile
file = File.join("public", params[:upload][:file].original_filename)
FileUtils.cp tmp.path, file
s = Roo::Excelx.new(file)
Or is there a more elegant way to solve this problem?
是的,你可以specify the extension。
s = Roo::Spreadsheet.open(
params[:upload][:file].tempfile.path,
extension: :xlsx
)
我正在使用 roo-rb 访问上传的文件。我的代码是这样的:
s = Roo::Excelx.new(params[:upload][:file].tempfile.path)
但我遇到了问题,因为生成的临时文件没有扩展名,我遇到了这个异常:
.../AppData/Local/Temp/RackMultipart20150216-10192-13yn50s is not an Excel-xlsx file
有没有办法重命名 tempfile.path
以使其具有适当的扩展名 (xlsx)?或者有没有更优雅的方法来解决这个问题?
我已经使用 fileutils
成功地重命名了一个临时文件(即使部署在 Heroku 上)。这是代码:
require 'roo'
require 'fileutils'
tmp = params[:upload][:file].tempfile
file = File.join("public", params[:upload][:file].original_filename)
FileUtils.cp tmp.path, file
s = Roo::Excelx.new(file)
Or is there a more elegant way to solve this problem?
是的,你可以specify the extension。
s = Roo::Spreadsheet.open(
params[:upload][:file].tempfile.path,
extension: :xlsx
)