社区
Ruby/Rails
帖子详情
ruby on rails 实现图片上传
wohaizai007
2011-01-27 10:49:52
前几天做了一个图片上传功能,单独做的时候做出来了,但是和别的控制器绑定在一起就乱了,比如说一个学生对应几个图片,做了数据库链接,一对多的关系,应该怎样设置才能一次传多张图片呢,可以给我传个实例吗?
...全文
567
1
打赏
收藏
ruby on rails 实现图片上传
前几天做了一个图片上传功能,单独做的时候做出来了,但是和别的控制器绑定在一起就乱了,比如说一个学生对应几个图片,做了数据库链接,一对多的关系,应该怎样设置才能一次传多张图片呢,可以给我传个实例吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
4.0 Guide mobi
Ruby
on
Rails
4.0 Guide 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
Ruby
On
Rails
开发实例-源代码
请结合我上次上传的“
Ruby
中文文档”,学习了解之后,再来实际操作,理解“
Ruby
On
Rails
”框架开发web程序,这个是很不错的实例,能够在短期内
实现
Rails
的web开发。
Learn
Rails
5.2 Accelerated Web Development with
Ruby
on
Rails
无水印原版pdf
Learn
Rails
5.2 Accelerated Web Development with
Ruby
on
Rails
英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
ruby
on
rails
的小型内容管理系统
rails
2.0的内容管理系统,可以发布文档、CVS库和Web资源3中资源,其中文档可以上传下载附件。支持打Tag。用户注册登录使用restful_authentication,分页使用will_paginate,Gem版本1.3.5
cloudinary_gem, 用于
Ruby
on
Rails
集成的Cloudinary gem.zip
cloudinary_gem, 用于
Ruby
on
Rails
集成的Cloudinary gem CloudinaryCloudinary是一个云服务,提供了一个解决方案,可以解决整个应用程序图像管理管道的问题。轻松将
图片上传
到云。 自动执行智能图像调整,裁剪和转换,无需安装任何复杂的软件。 集成Facebook或者 Twit
Ruby/Rails
2,763
社区成员
1,761
社区内容
发帖
与我相关
我的任务
Ruby/Rails
Web 开发 Ruby/Rails
复制链接
扫一扫
分享
社区描述
Web 开发 Ruby/Rails
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章