• 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。
  • 相关阅读:
    vanilla单词的意思
    快速排序实现
    python下载一些包出现time out的问题解决
    神经网络浅讲:从神经网络到深度学习
    神经网络基础知识
    TCP/IP
    查找机器学习相关数据集
    [数据治理]
    【算法】——LRU
    【大数据开发工程师】面试——HBase
  • 原文地址:https://www.cnblogs.com/zs-note/p/3346657.html
Copyright © 2020-2023  润新知