rails上傳圖片代碼實例
来源:互联网 发布:装修监理必知 编辑:程序博客网 时间:2024/05/01 12:36
今天講解一下rails的圖片上傳,就是最平常的上傳圖片 這裡的rails版本2.3.5
首先新建一個write_pic model內容如下:
class WritePicrequire "RMagick"require "uuid"def self.write(pic_data,ori_name,resize = nil,file_type = "jpg",tag=false)#File.delete("c:/programData/ruby-uuid") if RAILS_GEM_VERSION == '2.1.2'uuid = ori_name || "#{UUID.new.generate}.#{file_type}"i = Magick::Image.from_blob(pic_data).firstif resizep=resize[:width].to_i*1.00 /i.columnsi.resize!(resize[:width],resize[:height]|| i.rows*p)endwh=0width = i.columnsheight = i.rowsif width > heightwh =1endi.write("#{RAILS_ROOT}/public/images/user_pic/#{uuid}")if tagreturn wh,uuidelsereturn uuidendenddef self.get_pic(url)uuid = "#{UUID.new.generate}.#{file_type}"img_orig1 = Magick::Image.read(url).firstimage1 = img_orig1.resize_to_fit(300,300)image1.write("#{RAILS_ROOT}/public/images/weibo_pic/#{uuid}")return uuidendend
上傳 圖片是用的插件所以最上面載入了插件。
調用write_pic 這個model的model文件寫法如下
class Theme < ActiveRecord::Baserequire "RMagick"require "uuid"def _image=(picture_field)if picture_field != ""self.image = WritePic.write(picture_field.read,self.image,nil)endenddef _imageself.imageenddef suoluetu=(picture_field)if picture_field != ""self.thumbnail = WritePic.write(picture_field.read,self.thumbnail,nil,"png")endenddef suoluetuself.thumbnailendend
controller裡面不用在乎太多,直接上view
<h1>New theme</h1><% form_for(@theme,:html=>{:multipart=>'true'}) do |f|%><%= f.error_messages %><p><%= f.label :name %><br /><%= f.text_field :name %></p><p><%= f.label :color %><br /><%= f.text_field :color %></p><p><%= f.label :lastcolor %><br /><%= f.text_field :lastcolor %></p><p><%= f.label :image %><br /><%= f.file_field :_image %></p><p><%= f.label :thumbnail %><br /><%= f.file_field :suoluetu %></p><p><%= f.submit "Create" %></p><% end %><%= link_to 'Back', themes_path %>
0 0
- rails上傳圖片代碼實例
- Rails
- Rails
- Rails
- rails
- Rails
- rails
- Rails
- Rails
- Rails
- Rails
- Rails
- Rails
- Rails
- Rails
- Rails
- rails
- Rails
- 指针学习九
- 背包问题
- mysql学习笔记之十五(日志管理)
- 面试题44:扑克牌的顺子
- Ruby 中一些百分號(%)的用法小結
- rails上傳圖片代碼實例
- VBA第6课 循环判断数据
- APM半实物仿真
- mysql学习笔记之十六(数据库维护)
- Ruby 中$開頭的全局變數、內部變數、隱藏變數介紹
- 数组-13. 螺旋方阵(20)
- 变态跳台阶
- 在TCP/IP网络中,为各种公共服务保留的端口号范围
- Ruby self在不同環境的含義