使用Sinatra上传文件

我正在尝试使用Sinatra上传文件。 我在这里有代码,但是我收到错误“方法file_hash不存在”(请参阅​​/lib/mvc/helpers/helpers.rb)。

这里发生了什么? 我缺少一些依赖吗?

 include FileUtils::Verbose get '/upload' do erb :upload end post '/upload' do tempfile = params[:file][:tempfile] filename = params[:file][:filename] cp(tempfile.path, "public/uploads/#{filename}") 'Yeaaup' end __END__ @@upload 

我发现,稍微改变并使用了这个:

 if params[:file] filename = params[:file][:filename] tempfile = params[:file][:tempfile] target = "public/files/#{filename)" File.open(target, 'wb') {|f| f.write tempfile.read } end 

原文位于https://github.com/tbuehlmann/sinatra-fileupload,但在我的环境中有一些配置问题。 不要忘记在上传表单中使用enctype="multipart/form-data"method='POST'