好吧,我正在搜索这几天,我真的找不到解决方案。我正在尝试发送多个文件并将其存储在本地(或者将来可能存储在s3存储桶中)并保存到数据库中。
我注意到我得到一个字符串而不是文件本身!
我正在使用rails 5.1和ruby 3.2
这是我的代码:
控制器:
all_files = params[:files]
all_files.each do |fil|
File.open(Rails.root.join('public', 'uploads', all_files.original_filename), 'wb') do |filea|
filea.write(all_files.read)
end
end
形式
<%= form_for @docs, :url => docs_create_path, :html => { :multipart => true } do |f| %>
<%= f.file_field :files, :multiple => 'multiple', :name => 'files[]'%>
<%= f.submit( "Upload file" ) %> <% end %>
常见错误:#Array的未定义方法`original_filename':0x0000000006aeb338&gt;
答案 0 :(得分:1)
将all_files.orginal
替换为file.orginal
all_files = params[:files]
all_files.each do |file|
File.open(Rails.root.join('public', 'uploads', file.original_filename), 'wb') do |temp_file|
temp_file.write(temp_file.read)
end
end