1,upload_controller.rb
[code]
class UploadController < ApplicationController
before_filter :configure_charsets
def configure_charsets
@headers["Content-Type"]="text/html;charset=utf-8"
end
def upload
end
def uploadFile(file)
if !file.original_filename.empty?
@filename=getFileName(file.original_filename)
File.open("#{RAILS_ROOT}/public/upload/#{@filename}", "wb") do |f|
f.write(file.read)
end
return @filename
end
end
def getFileName(filename)
if !filename.nil?
Time.now.strftime("%Y_%m_%d_%H_%M_%S") + '_' + filename
end
end
def save
unless request.get?
if filename=uploadFile(params[:file]['file'])
render :text=>filename
end
end
end
end
[/code]
2,upload.rhtml
[code]
<h1>Upload File</h1>
<%= form_tag({:action => 'save'}, :multipart => true) %>
Upload your file: <%= file_field("file", "file") %>
<br/>
<%= submit_tag("Upload file") %>
<%= end_form_tag %>
[/code]
[code]
class UploadController < ApplicationController
before_filter :configure_charsets
def configure_charsets
@headers["Content-Type"]="text/html;charset=utf-8"
end
def upload
end
def uploadFile(file)
if !file.original_filename.empty?
@filename=getFileName(file.original_filename)
File.open("#{RAILS_ROOT}/public/upload/#{@filename}", "wb") do |f|
f.write(file.read)
end
return @filename
end
end
def getFileName(filename)
if !filename.nil?
Time.now.strftime("%Y_%m_%d_%H_%M_%S") + '_' + filename
end
end
def save
unless request.get?
if filename=uploadFile(params[:file]['file'])
render :text=>filename
end
end
end
end
[/code]
2,upload.rhtml
[code]
<h1>Upload File</h1>
<%= form_tag({:action => 'save'}, :multipart => true) %>
Upload your file: <%= file_field("file", "file") %>
<br/>
<%= submit_tag("Upload file") %>
<%= end_form_tag %>
[/code]
本文介绍了一个使用Ruby on Rails实现的文件上传控制器的具体实现细节。该控制器通过定义before_filter来配置字符集,并提供upload方法用于处理文件上传请求。此外,还包含了一个简单的HTML表单示例,用于前端用户界面进行文件选择及上传操作。
440

被折叠的 条评论
为什么被折叠?



