2007-04-10
Rails文件上传
关键字: rails 文件上传
1,upload_controller.rb
2,upload.rhtml
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
2,upload.rhtml
<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 %>
评论
按照你说的方法在上传中文文件有2个问题
1 上传到服务器磁盘上的文件名是乱码,但页面上正确显示上传后的文件名
2 有时侯上传一些中文文件时会出错,如下
Invalid argument - ./public/upload/2007_05_10_00_16_18_xx县评估提纲.doc
请指点一下,谢谢:)[i][/i]
这是因为你的public目录下没有建立upload文件夹
1 上传到服务器磁盘上的文件名是乱码,但页面上正确显示上传后的文件名
2 有时侯上传一些中文文件时会出错,如下
Invalid argument - ./public/upload/2007_05_10_00_16_18_xx县评估提纲.doc
请指点一下,谢谢:)[i][/i]
这是因为你的public目录下没有建立upload文件夹
1,我测试过了没有中文乱码问题,不知道你所说的是具体什么问题。
2,当然需要Ruby的ftp上传library之类的东西来上传文件到服务器,如Class: Net::FTP类
2,当然需要Ruby的ftp上传library之类的东西来上传文件到服务器,如Class: Net::FTP类
我在数据库中建了一张表,把文件的名称与相关信息写到数据库的表里面。
1、工程文件使用的编码以及rhtml文件使用的编码格式都是utf-8,并且控制器中含有一下代码,
before_filter :configure_charsets
def configure_charsets
@headers["Content-Type"]="text/html;charset=utf-8"
end
但还是有部分文件不能成功上传。
2.如果我想将文件上传到一个文件服务器,而不是放在本地,应该如何操作,是修改"#{RAILS_ROOT}/public/upload/#{@filename}"吗?
1、工程文件使用的编码以及rhtml文件使用的编码格式都是utf-8,并且控制器中含有一下代码,
before_filter :configure_charsets
def configure_charsets
@headers["Content-Type"]="text/html;charset=utf-8"
end
但还是有部分文件不能成功上传。
2.如果我想将文件上传到一个文件服务器,而不是放在本地,应该如何操作,是修改"#{RAILS_ROOT}/public/upload/#{@filename}"吗?
1,
这段代码就是控制页面的编码的,你将Rails程序统一使用utf-8编码所有文件,就不会出现乱码现象。所以你可能需要将upload_controller.rb和upload.rhtml这两个文件的编码改为utf-8
2,上传文件不要放到数据库,不然数据库容易崩溃
如果你一意孤行,可以定义一个Model,其中有一个字段data的类型为blob用来保存文件数据
before_filter :configure_charsets def configure_charsets @headers["Content-Type"]="text/html;charset=utf-8" end
这段代码就是控制页面的编码的,你将Rails程序统一使用utf-8编码所有文件,就不会出现乱码现象。所以你可能需要将upload_controller.rb和upload.rhtml这两个文件的编码改为utf-8
2,上传文件不要放到数据库,不然数据库容易崩溃
如果你一意孤行,可以定义一个Model,其中有一个字段data的类型为blob用来保存文件数据
发表评论
- 浏览: 723096 次
- 性别:

- 来自: BJ

- 详细资料
搜索本博客
我的相册
screenshot
共 1 张
共 1 张
最近加入圈子
最新评论
-
Why OO sucks
看成去QQ SUCK 了
-- by xhanxhanxhan -
Rails的富文本编辑器插件 ...
有没有那个像textmate那种语法高亮的富文本编辑器?
-- by zllicho -
翻译www.djangobook.com之 ...
weiertzw 写道 1. >>> from django. ...
-- by chenjihua75 -
PHP、CakePHP哪凉快哪呆 ...
这孩子被java毒害太深。。。跳出java,你会发现外面的世界真的很大。
-- by woodless -
学习svn命令
只会用 apt-get 不是好孩子。
-- by smartly






评论排行榜