gpt4 book ai didi

ruby-on-rails - 无法上传文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:09 26 4
gpt4 key购买 nike

我在上传文件时遇到问题:

这是我的 html:

<%= form_tag import_test_path, multipart: true do %>
<%= file_field_tag :file, :style => 'display:inline; margin-top:-10px' %>
<%= submit_tag 'Hochladen', :class => 'btn btn-sm btn-info' %>
<% end %>

首先我尝试简单地上传它并在我的 Controller 中像这样处理它:

  def import
widgets = DBF::Table.new(params[:file], nil, 'cp1252')
w = widgets.find(6)
p = Patient.new
p.vorname = w.vorname
p.name = w.name
p.geburtsdatum = w.geburt
p.save
respond_to do |format|
format.html {redirect_to :back }
end
end

但这引发了一个错误:

 no implicit conversion of ActionDispatch::Http::UploadedFile into String
in line: DBF::Table.new(params[:file], nil, 'cp1252')

接下来我尝试先生成一个临时文件:

def import
file = Tempfile.new(params[:file])
widgets = DBF::Table.new(file, nil, 'cp1252')
w = widgets.find(6)
p = Patient.new
p.vorname = w.vorname
p.name = w.name
p.geburtsdatum = w.geburt
p.save
respond_to do |format|
format.html {redirect_to :back }
end
end

但这也被证明是一个错误:

 unexpected prefix_suffix: #<ActionDispatch::Http::UploadedFile:0x6793d10 @tempfile=#  <Tempfile:C:/Users/EMMANU~1/AppData/Local/Temp/RackMultipart20131110-6816-ogkd3i>, @original_filename="patient.DBF", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"patient.DBF\"\r\nContent-Type: application/octet-stream\r\n">
in line: file = Tempfile.new(params[:file])

我做错了什么?谢谢,祝你有美好的一天!

最佳答案

访问 params[:file] 是一个 ActionDispatch::Http::UploadedFile,它只是用于存储上传内容的 TmpFile 的包装器。

您需要读取该 IO 类对象以获取内容。

关于ruby-on-rails - 无法上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19891384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com