社区
Ruby/Rails
帖子详情
ruby on rails 实现图片上传
wohaizai007
2011-01-27 10:49:52
前几天做了一个图片上传功能,单独做的时候做出来了,但是和别的控制器绑定在一起就乱了,比如说一个学生对应几个图片,做了数据库链接,一对多的关系,应该怎样设置才能一次传多张图片呢,可以给我传个实例吗?
...全文
586
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
,简称
Rails
,是一款基于
Ruby
语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。
Rails
由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...
ruby
on
rails
最新版
Ruby
on
Rails
,简称
Rails
,是基于
Ruby
编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。
Rails
以其“约定优于配置”(Convention over Configuration)...
ruby
on
rails
3 tutorial.pdf
《
Ruby
on
Rails
3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握
Ruby
on
Rails
这一强大的Web开发框架。
Ruby
on
Rails
(简称
Rails
)是基于
Ruby
语言的一个开源框架,它采用MVC(Model-View-...
ruby
on
rails
在线考试系统
Ruby
on
Rails
(简称
Rails
)是一种基于
Ruby
语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程并提高效率。在这个“
ruby
on
rails
在线考试系统”中,我们可以探讨以下几...
ruby
on
rails
开发环境包(
ruby
1.8.7,
rails
2.2.3)
Ruby
on
Rails
,简称
Rails
,是由David Heinemeier Hansson创建的一种基于
Ruby
语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。在这个开发环境包中,我们拥有
Ruby
...
Ruby/Rails
2,764
社区成员
1,761
社区内容
发帖
与我相关
我的任务
Ruby/Rails
Web 开发 Ruby/Rails
复制链接
扫一扫
分享
社区描述
Web 开发 Ruby/Rails
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章