`

Rails2.2.2之文件上传下载

 
阅读更多
1. 创建一个保存文件的表,然后rake db:migrate同步到数据库
class CreatePictures < ActiveRecord::Migration
  def self.up
    create_table :pictures do |t|
      t.string :comment
      t.string :name
      t.string :content_type
      # If using MySQL, blobs default to 64k, so we have to give
      # an explicit size to extend them
      t.binary :data, :limit => 1.megabyte
    end
  end

  def self.down
    drop_table :pictures
  end
end


2. 创建UploadController
class UploadController < ApplicationController
  def get
    @picture = Picture.new
  end

  def save
    @picture = Picture.new(params[:picture])
    if @picture.save
      redirect_to(:action => 'show', :id => @picture.id)
    else
      render(:action => :get)
    end
  end

  def show
    @picture = Picture.find(params[:id])
  end

  def picture
    @picture = Picture.find(params[:id])
    send_data(@picture.data,
              :filename => @picture.name,
              :type => @picture.content_type,
              :disposition => "inline")
  end
end


3. 文件上传初始页面get.html.erb
<%= error_messages_for("picture" ) %>
<% form_for(:picture,
			:url => {:action => 'save'},
			:html => { :multipart => true }) do |form| %>
	Comment: <%= form.text_field("comment" ) %><br/>
	Upload your picture: <%= form.file_field("uploaded_picture" ) %><br/>
	<%= submit_tag("Upload file" ) %>
<% end %>



4. 上传后的从数据库中读取图片并显示图片的页面show.html.erb
<h3><%= @picture.comment %></h3>
<img src="<%= url_for(:action => 'picture', :id => @picture.id) %>"/>


5. 访问http://localhost:3000/upload/get

  • 大小: 6.9 KB
分享到:
评论

相关推荐

    Rails2.2.2之windows环境搭建

    Rails 2.2.2要求Ruby的一个特定版本,因此请确保下载与该版本兼容的Ruby。访问Ruby官方网站(ruby-lang.org)下载Ruby 1.8.7或更高版本,同时安装Ruby的开发包,这将包含所需的头文件和编译器工具,以便后续安装Gem...

    ruby on rails 2.2.2 参考手册

    9. **Asset Pipeline**:Rails 2.2.2引入了Asset Pipeline,它管理应用的CSS、JavaScript和图片等静态资源,支持文件合并、压缩和版本控制。 10. **Gemfile与Bundler**:Rails项目通过Gemfile声明依赖的外部gem,...

    基于Rails2.2.2的ajax

    标签 "源码" 和 "工具" 暗示了可能在压缩包文件 "RailsAjax" 中包含了相关的示例代码或者工具,用于辅助学习和理解如何在Rails 2.2.2中实现AJAX。这些代码可能包括完整的应用示例、控制器、视图、模型以及相关的...

    rails-2.2.2.zip

    Rails 2.2.2 是一个古老的 Ruby on Rails 框架版本,它在2008年发布,标志着Web开发的一个重要里程碑。Ruby on Rails(简称Rails)是由David Heinemeier Hansson创建的开源Web应用程序框架,它遵循模型-视图-控制器...

    基于Rails2.2.2的自建的CRUD项目视频

    【标题】"基于Rails2.2.2的自建的CRUD项目视频" 在这个项目中,我们将探讨如何使用Ruby on Rails 2.2.2版本构建一个基础的CRUD(创建、读取、更新和删除)应用。Ruby on Rails 是一个流行的开源Web应用程序框架,它...

    rails 2.2.2 API

    Rails 2.2.2 API 是一个针对 Ruby on Rails 框架的版本 2.2.2 的接口文档,它是开发人员的重要参考资料,用于理解并有效地使用该框架的各项功能。Ruby on Rails(RoR)是由 David Heinemeier Hansson 创建的一个开源...

    rails_多文件上传

    Rails 多文件上传插件实现详解 Rails 多文件上传插件是基于 Ruby on Rails 框架的一款插件,旨在实现多文件的同时上传,控制文件的格式、数量,并且兼容多种浏览器,包括 IE6、7、Firefox 等。下面是对插件的详细...

    Rails中上传文件保存中文文件名乱码

    在Rails框架中处理文件上传时,经常会遇到一个问题,那就是当用户尝试上传包含中文名称的文件时,文件名可能会出现乱码。这个问题主要是由于字符编码不兼容导致的。Rails默认使用UTF-8编码,但文件系统或者某些外部...

    rails上传文件_paperclip

    在Ruby on Rails框架中,Paperclip是一个非常流行的用于处理文件上传的库。它提供了一种简单而优雅的方式来管理和处理模型中的附件,如图片、文档等。Paperclip与ActiveRecord紧密集成,使得在Rails应用中添加文件...

    jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成.zip

    jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成 Rails 文件上传jQuery-File-Plugin 是一个文件上传插件,由的Tschan 。 jQuery文件上传功能多文件选择。drag&拖放支持。进度栏和jQuery预览图像。 支持...

    Rails里给文件上传添加progress_bar

    在Ruby on Rails(Rails)框架中,为文件上传添加进度条功能可以显著提升用户体验,让用户在上传大文件时能够清楚地看到进度,增加交互性。本文将深入探讨如何在Rails应用中实现这一功能。 首先,我们需要理解文件...

    应用Rails进行敏捷Web开发中文第三版

    6. **插件和gem**:Rails社区有大量的插件和gem可供扩展功能,如Devise用于用户认证,Cancancan用于授权,或者Paperclip和Carrierwave处理文件上传。 7. **Ajax和JavaScript**:Rails 2.2.2支持集成Prototype ...

    rails 文件上传

    本篇文章将深入探讨Rails中的文件上传机制,并结合给定的“rails 文件上传”主题,提供关于如何在Rails应用中实现文件上传的详细知识。 1. **ActionDispatch::Http::UploadedFile**: 当用户通过表单上传文件时,...

    rails ajax提交文件或图片

    在本篇博文中,我们将深入探讨如何在Rails中利用AJAX提交文件或图片。 首先,我们需要设置一个表单来允许用户上传文件。在Rails中,`form_for`辅助方法可以帮助我们创建一个表单,但为了支持AJAX提交,我们需要将其...

    升级版本后Rails的文件上传

    在Ruby on Rails框架中,文件上传是一个常见的需求,特别是在应用的升级过程中,处理文件上传的策略可能会有所变化。Rails提供了多种处理文件上传的方法,包括直接存储到本地文件系统、使用云存储服务(如Amazon S3...

    will_paginate 2.2.2

    `will_paginate`是Rails框架中非常流行的一个分页插件,版本2.2.2是它的一个历史版本。在本文中,我们将深入探讨`will_paginate`的使用方法、功能特性以及它如何与Rails集成,帮助提升Web应用的性能和用户体验。 一...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

Global site tag (gtag.js) - Google Analytics