ruby 代码
- class CreatePictures < ActiveRecord::Migration
- def self.up
- create_table :pictures do |t|
- t.column :comment, :string, :limit=>100
- t.column :name, :string, :limit=>200
- t.column :content_type, :string, :limit=>100
- t.column :title, :binary
- end
- end
-
- def self.down
- drop_table :pictures
- end
- end
ruby 代码
- class RenameColumnData < ActiveRecord::Migration
- def self.up
- rename_column :pictures,:title, :data
- end
-
- def self.down
- rename_column :pictures,:data, :title
- end
- end
以上是通过migration建立相应的数据表。
建立controller:
ruby 代码
- class UploadController < ApplicationController
- def get
- @picture = Picture.new
- end
- end
建立get template:
ruby 代码
- <%= error_messages_for("picture") %>
- <%= form_tag({:action => 'save'}, :multipart => true) %>
- Comment: <%= text_field("picture", "comment") %>
- Upload your picture: <%= file_field("picture", "picture") %>
- <%= submit_tag("Upload file") %>
- <%= end_form_tag %>
-
-
建立model:
ruby 代码
- class Picture < ActiveRecord::Base
- validates_format_of :content_type, :with => /^image/,
- :message => "--- you can only upload pictures"
- def picture=(picture_field)
- self.name = base_part_of(picture_field.original_filename)
- self.content_type = picture_field.content_type.chomp
- self.data = picture_field.read
- end
- def base_part_of(file_name)
- name = File.basename(file_name)
- name.gsub(/[^\w._-]/, '')
- end
- end
扩充controller,添加save action:
ruby 代码
- def save
- @picture = Picture.new(params[:picture])
- if @picture.save
-
- redirect_to(:action => 'show', :id => @picture.id)
- else
- render(:action => :get)
- end
- end
扩充controller,添加picture action:
ruby 代码
- def picture
- @picture = Picture.find(params[:id])
- send_data(@picture.data,
- :filename => @picture.name,
- :type => @picture.content_type,
- :disposition => "inline")
- end
定义show action:
ruby 代码
- def show
- @picture = Picture.find(params[:id])
- end
显示图片:
ruby 代码
注:引自Dave Thomas的《Agile Web Development with Rails》
分享到:
相关推荐
今天讲解一下rails的图片上传,就是最平常的上传图片 这里的rails版本2.3.5 首先新建一个write_pic model内容如下: 代码如下:class WritePicrequire “RMagick”require “uuid”def self.write(pic_data,ori_name,...
可实现多文件的同时上传,控制文件的格式,数量,同时兼容IE6,7,firefox,易于扩展
RMagick是Ruby和ImageMagick之间的接口
css和图片 博文链接:https://hideto.iteye.com/blog/197517
用rails实现的简单的简历系统,其中包括图片上传、验证码生成、数据查询、分页、日历、sort、邮件发送
登录后,用户可以将照片上传到他们的帐户并在照片中标记其他用户。 安装和使用 运行 Postrges 服务器 克隆或下载此存储库并 cd 到缩进目录 $ rake db:create $ rake db:migrate $ rails server 在浏览器中访问 ...
具有多文件上传、拖拽、进度条和图像预览功能的文件上传插件,支持跨域、分块、暂停恢复和客户端...可与任何服务端平台(如PHP、Python、Ruby on Rails、Java、Node.js、Go等)一起使用,支持标准的HTML表单文件上传。
条目器AngularJS的Rails脚手架示例安装耙数据库:创建耙数据库:迁移耙db:种子耙式凉亭:安装滑轨打开浏览器并享受;)测验规格必须使用一个Item模型来实现一个项目,该模型具有2个字段:名称和图片(图片文件)。 ...
设置 Rails 应用 设置需要成本、细节和照片的产品模型 确保正在显示 Flash 错误/通知 添加用户和登录名(使用 Devise) 允许用户上传他们要出售的产品的照片 确保在布局中设置每个标题(徽标和导航栏) 生成搜索/...
1.图片上传 在本文的Rails 2资源驱动世界中,Fleximage认为图像应直接属于记录。 因此,您只需告诉模型类充当Fleximage,即可轻松地获得处理文件上载的能力。 您的模型可以直接与file_field表单进行file_field ,...
特征拖放图片上传同时上传图片嵌套相册基于基本管理员角色的权限评论和收藏专辑去做更多测试!如何? 这是应用程序中使用的一些关键组件的列表: (Web框架) (对象关系数据库) (JavaScript框架) (标记) ...
cloudinary_gem, 用于 Ruby on Rails 集成的Cloudinary gem CloudinaryCloudinary是一个云服务,提供了一...轻松将图片上传到云。 自动执行智能图像调整,裁剪和转换,无需安装任何复杂的软件。 集成Facebook或者 Twit
一个内置于 rails 中的多用户照片上传网站。 示范目标 此示例旨在演示: 做出小的、有目的的提交 使用功能测试来塑造您的代码库 定期重构为的(有点极端) 发布 每个功能都链接到添加该功能的拉取请求。 每次提交都...
PHPCHINA抄的代码,和大家分享一下。
通过回形针上传图片 通过 URL 上传图片 动画 GIF 作为“图钉” 用户访问控制(例如:用户不能修改其他用户的公开可用的 pin。) 通过对许多用户进行测试功能的假用户数据库填充(仅测试环境) 分页 公共用户配置...
最终项目包括: Flash 前端用于拍照、裁剪和压缩 (jpg) 并将其上传到后端。 Ruby on Rails 后端OpenCV 通过 Python 包装器。 我用 ruby 的反引号与 python 交谈以执行系统命令。 结果:在受控环境中的识别率为 ...
在本教程中,我们将创建一个简单的站点,可以在其中创建文章并可以将图片作为文章的一部分上传。第 1 步 - 确保您拥有所有依赖项确保您有一个带有 S3 存储桶的 AWS 账户。 将您的访问密钥和秘密访问密钥放在手边,...