社区
Ruby/Rails
帖子详情
ruby on rails 实现图片上传
wohaizai007
2011-01-27 10:49:52
前几天做了一个图片上传功能,单独做的时候做出来了,但是和别的控制器绑定在一起就乱了,比如说一个学生对应几个图片,做了数据库链接,一对多的关系,应该怎样设置才能一次传多张图片呢,可以给我传个实例吗?
...全文
584
1
打赏
收藏
ruby on rails 实现图片上传
前几天做了一个图片上传功能,单独做的时候做出来了,但是和别的控制器绑定在一起就乱了,比如说一个学生对应几个图片,做了数据库链接,一对多的关系,应该怎样设置才能一次传多张图片呢,可以给我传个实例吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
凝然
2011-12-22
打赏
举报
回复
实现多张图片上传与图片预览的方法相似,都是通过发送消息给方法,然后该方法渲染某个div以达到添加一个file_field控件的目的。而不同点在于预览时如何判断是哪个file_filed发过来的消息,这样才能渲染到相应的预览区域内。这里我们通过一个变量@file_id来传递,各个渲染的区域ID也用@file_id来表示。如:
<div id = "file_field_<%= @file_id %>">
<%= file_field_tag("attachment[#{@file_id}][]", :onchange => "this.form.action = '#{url_for :controller => 'myblog', :action => 'project_image_preview', :file_id => @file_id }';this.form.submit();", :size =>50) %>
</div>
<div id = 'image_preview_<%= @file_id %>'></div>
<div id = "delete_button_<%= @file_id %>"></div>
最重要的就是如何接收到文件,上面用了一个数组attachment,接收时key = params[:file_id], file = params["attachment"][key].first这样就取得了文件,接着就可以对预览区渲染了。
另外,在保存多张图片时也要注意,首先利用迭代判断每个上传区域是否有文件,然后保存。
def self.upload(file_array, id)
#进来file_array形式是hash{1=> 'file1',2 => 'file2'}
file_path = "#{RAILS_ROOT}/public/images/uploaddata/#{id}/"
pp file_path
if !File.exist?(file_path)
Dir.mkdir(file_path, 0777)
end
file_array.each do |key,value| # 迭代保存
file = value[0]
original_name = file.original_filename
save_name = UUIDTools::UUID.random_create.to_s[0,4] + original_name
if file.present? # 判断文件是否存在
file_name = file_path + save_name
if File.exist?(file_name)
File.delete(file_name)
end
File.open(file_name,"wb") do |f|
f.write(file.read)
end
end
Ruby
On
Rails
中文教材(PDF)
Ruby
On
Rails
中文教材(PDF)
ruby
on
rails
最新版
ruby
on
rails
最新版
这是本人精心收集的重要软件
ruby
on
rails
3 tutorial.pdf
ruby
on
rails
开发的初学者很适合的工具书,易上手,很实用,
ruby
on
rails
在线考试系统
本系统采用
ruby
on
rails
开发的在线考试系统。
ruby
on
rails
开发环境包(
ruby
1.8.7,
rails
2.2.3)
ruby
on
rails
开发环境包(
ruby
1.8.7,
rails
2.2.3)
Ruby/Rails
2,764
社区成员
1,761
社区内容
发帖
与我相关
我的任务
Ruby/Rails
Web 开发 Ruby/Rails
复制链接
扫一扫
分享
社区描述
Web 开发 Ruby/Rails
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章