我试图能够使用Sinatra上传文件.我有代码
here,但是我收到错误“方法file_hash不存在”(请参阅/lib/mvc/helpers/helpers.rb).
这里发生了什么?有没有一些依赖我失踪.
解决方法
我在
this thread上发现了示例代码,祝你好运.
post '/upload' do unless params[:file] && (tmpfile = params[:file][:tempfile]) && (name = params[:file][:filename]) @error = "No file selected" return haml(:upload) end STDERR.puts "Uploading file,original name #{name.inspect}" while blk = tmpfile.read(65536) # here you would write it to its final location STDERR.puts blk.inspect end "Upload complete" end
那么你的看法会像这样.这使用HAML,但重要的部分是不要忘记在表单元素中设置enctype,否则您将只获取文件名而不是一个对象:
%form{:action=>"/upload",:method=>"post",:enctype=>"multipart/form-data"} %input{:type=>"file",:name=>"file"} %input{:type=>"submit",:value=>"Upload"}