如何在不将文件附加到 Activity 记录的情况下处理Rail中的文件上传?
我只想将文件写入磁盘。
谢谢,
请您参考如下方法:
如果我正确理解您的需求,那么最简单的例子就是:
Controller :
class UploadController < ApplicationController
def new
end
def create
name = params[:upload][:file].original_filename
path = File.join("public", "images", "upload", name)
File.open(path, "wb") { |f| f.write(params[:upload][:file].read) }
flash[:notice] = "File uploaded"
redirect_to "/upload/new"
end
end
风景:
<% flash.each do |key, msg| %>
<%= content_tag :div, msg, :class => [key, " message"], :id => "notice_#{key}" %>
<% end %>
<% form_tag '/upload/create', { :multipart => true } do %>
<p>
<%= file_field_tag 'upload[file]' %>
</p>
<p>
<%= submit_tag "Upload" %>
</p>
<% end %>
这样一来,您可以上传任何文件,而无需进行任何检查或验证,而我认为这没有什么用。
如果我自己做,那么我将使用 validatable gem或 tableless gem之类的东西,只是不再支持无表。这些 gem 可让您验证上传的内容,使其更加理智。