但是这个HTTP不让做,所以就做了个先上传到服务器再操作.
先说说我是怎么实现上传的吧!
首先试图就不用说了,看下就知道了
<%form_tag ({:action=>"upload"},:multipart=>true ) do %>文件路径:<%end%>
保存文件名 (无须填写后缀)
添加了一些JS, 用于同时提交多个文件.
然后就是控制器了
def upload unless request.get? i=params[:file].size for num in (0..i-1) if params[:file][num].original_filename[-3,3] == "xls" filename = uploadFile(params[:file][num],params[:names][num]) else flash[:notice] = "上传失败,上传的并非EXCEL文件!" end end end end protected def uploadFile(file,filenames) if !file.original_filename.empty? @filename = getFileName(file.original_filename,filenames) File.open("#{RAILS_ROOT}/excel/#{@filename}", "wb") do |f| f.write(file.read) end return @filename end end def getFileName(filename,filenames) if !filename.nil? filename = filenames+".xls" return filename end end
这里需要解释下的是, 文件将保存在RAILS_ROOT/excel/文件夹里面,这个可以根据需要改变.
依照上面应该能将文件成功保存到EXCEL文件夹下面
顺带现实文件夹下文件的方法.
辅助方法里面些上这些
require 'find' def root_excel options = Array.new Find.find(RAILS_ROOT + "/excel") do |lang| if lang =~ /\.xls$/ lang_pattern = File.basename(lang) options << lang_pattern end end options end
再在试图中加上
<%for excel in root_excel%> <%=excel%> <%end%>
EXCEL的文件就能显示出来了
上传了就可以去显示了
http://sayid2008.iteye.com/blog/188472提供显示