美文网首页
rails上传文件的原始方法

rails上传文件的原始方法

作者: 风吹过的夏天lee | 来源:发表于2017-09-07 16:02 被阅读0次

1.Views

1)使用form_tag生成表单
<%= form_tag({action: :upload}, multipart: true) do %>
      <%= file_field_tag 'picture' %>
<% end %>
2)使用form_for
<%= form_for @person do |f| %>
      <%= f.file_field :picture %>
<% end %>

2.在model上写业务逻辑处理

class MyFile < ActiveRecord::Base

    def file=(file_field)    # 这是有特殊含义的
        #注意使用wb+方法
        File.open("#{RAILS_ROOT}/myfile", "wb+") do |f|
            f.write(file_field.read)
        end
    end
end

3.controller处理

class UploadController < ApplicationController

    def upload
        unless request.get?
            file = MyFile.new(params[:file])    # 自动调用 File 里面的file=method
            if file.save
               redirect_to path, notice: {}
            else
               # 失败的操作
            end
        end
    end
end

4.Controller(选用)

def upload
    uploaded_io = params[:person][:picture]  #通过params获取文件
    File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
      file.write(uploaded_io.read)
    end 
end

相关文章

  • rails上传文件的原始方法

    1.Views 2.在model上写业务逻辑处理 3.controller处理 4.Controller(选用)

  • ruby on rails nginx 如何上传大文件?

    用ruby on rails开发的web,用了carrierwave和dropzone实现了上传文件。但后来发现,...

  • rails 笔记(2)

    rails中的校验和测试 1、model 文件中增加validates,validates方法是个标准的Rails...

  • iOS开发-NSURLSession文件上传

    一、NSURLSession实现文件上传 (1)实现文件上传的方法 (2)设置代理,在代理方法中监听文件上传进度 ...

  • 阿里oss文件分片上传

    OSS文件分片上传 依赖 基础参数dto 具体上传方法 小文件上传 大文件上传,分片oss自己处理 处理逻辑:前段...

  • springBoot 2.x 读取上传流文件

    网上有很多上传文件的教程,使用很不舒服,所以写了这读取上传流文件的方法,方法输出为String类型 图片上传功能方法

  • Active Storage+GraphQL:直接上传

    Active Storage之前的生活 首先,让我告诉你我们如何在Rails 4中处理文件上传.TwoQL规范和g...

  • JavaEE-Servlet-文件上传和下载

    一、文件上传 1.文件上传表单(Html) 2.Servlet文件上传 方法一.使用Servlet3.0规范接口 ...

  • 文件分片上传.md

    文件分片上传 文件分片上传的总体思路是 先将文件通过blob.slice()方法将文件切割成多个分片。然后循环上传...

  • 文件上传代码阅读

    1.多文件上传循环调用单文件上传方法uploadFile() 3.设置文件路径及文件名4.文件上传核心CUploa...

网友评论

      本文标题:rails上传文件的原始方法

      本文链接:https://www.haomeiwen.com/subject/bvpijxtx.html