zoukankan      html  css  js  c++  java
  • Rails上传文件

    1、view

    <%= form_tag({:method =>"post",:controller =>"welcome",:action=>"upload"},:multipart =>true)do %>
    <%= file_field ("file","filedata") %>
    <%= submit_tag '运行',:class=>"buttonsave"%>
    <%end %>

    2、controller

      def upload
        uploadFile(params["file"]["filedata"])
      end
    
      def uploadFile(file)
        if!file.original_filename.empty?
          @filename= getFileName(file.original_filename)# 生成一个随机的文件名
    
          File.open("#{Rails.root}/public/upload/#{@filename}", "wb") do |f|
            f.write(file.read)# 向dir目录写入文件
          end
          return@filename
        end
      end 
    
      def getFileName(filename)
        if!filename.nil?
          require'uuidtools'
          filename.sub(/.*./,UUID.random_create.to_s+'.')
        end
      end

    注:form一定写成 <%= form_tag({:action =>'upload'}, :multipart => true)%>

    for_tag(url_for_options={}, options={}, *parameters_for_url, &block);options 可以指定 mutipart属性。
    :action =>'upload', :multipart => true # 会被当成一个最右参数,就都传给了 url_for_opitons;这样multipart参数就被丢弃掉了。
    {:action =>'upload'}, :multipart => true # 是两个参数,这样 :mutipart=>true就传给第二个形参 options。
  • 相关阅读:
    nodejs发送http请求
    Codeforces Round #655 (Div. 2)
    闇の連鎖 树上LCA + 树上差分
    Tree 换根dp
    「水」悠悠碧波 kmp
    HH的项链
    Educational Codeforces Round 90 (Rated for Div. 2)
    巡逻(论为什么第二次求直径要用dp)
    Codeforces Round #651 (Div. 2)
    Treap板子
  • 原文地址:https://www.cnblogs.com/zs-note/p/3346657.html
Copyright © 2011-2022 走看看