我有一个有文件输入的表格;
<%form_tag '/dboss/newsbsresult' , :remote=>true do %>
<input type="file" id="examsendbutton" name="txtsbs"/><br/>
<input type="submit" value="Gonder">
<%end%>
在这里,我希望用户选择我尝试在服务器上解析和使用的txt文件,但我无法用此代码捕获上传的文件,
def newsbsresult
@u = params[:txtsbs] #Or params[:txtsbs].to_s
p @u
end
实现这一目标的真正方法是什么?
答案 0 :(得分:2)
AJAX请求不支持开箱即用的文件上传 - 或者根本不支持技术上传。这是因为JavaScript无法直接从文件字段中读取数据(HTML 5除外)。有许多方法可以进行类似AJAX的文件上传(例如file-uploader或uploadify,在较旧的技术中),但Rails不支持这些只需设置:remote => true
- 你必须使用其他/额外的东西让它发挥作用。
简单的解决方案是删除 :remote => true
和添加 :multipart => true
。
进一步阅读:
答案 1 :(得分:0)
尝试将:multipart => true
添加到form_tag
<% form_tag '/dboss/newsbsresult' , :remote=>true, :multipart => true do %>
答案 2 :(得分:0)
根据您的问题,如果我的理解是正确的。您想要从上传文件中读取数据。 我遇到类似的事情,需要在我的Rails应用程序的另一个文本区域显示上传的文本。
这就是我所做的。
1 <%= form_tag('/dboss/newsbsresult' , :multipart => true) do %>
2 <input type="file" id="examsendbutton" name="txtsbs"/><br/>
3 <input type="submit" value="Gonder">
4 <% end %>
1 def index
2 if (params[:txtsbs].present?)
3 @upload_text = params[:txtsbs].read
4 render :text => @upload_text
5 end
6 end
match 'dboss/newsbsresult' => 'user#index'