尝试上传图像时编码:: UndefinedConversionError

uts*_*and 2 file-upload ruby-on-rails-3.1

我使用以下代码将图像上传到我的root rails目录中的/ public/uploads /文件夹中.

 uploaded_io = params[:product_image]
 File.open(Rails.root.join('public','uploads', uploaded_io.original_filename), 'w') do |file|
    file.write(uploaded_io.read)
 end
Run Code Online (Sandbox Code Playgroud)

我的表格看起来像这样

<%= form_tag({:action => :configure_product}, :multipart => true) do %>
<%= label_tag(:product_image, "Image:") %><br />
<%= file_field_tag 'product_image' %>
<%= submit_tag "Save and add another", :name => 'save and add another' %>
<%= submit_tag "Save", :name => 'save' %> 
<% end %>
Run Code Online (Sandbox Code Playgroud)

但在尝试提交表单时,我收到以下错误.

在ConfigureCategoryController#configure_product中编码:: UndefinedConversionError

"\ xFF"从ASCII-8BIT到UTF-8

我把写作模式从'w'改为'wb',现在我得到了

ConfigureCategoryController#configure_product中的NoMethodError

nil的未定义方法`name':NilClass

新的铁路.肯定会感谢你的帮助.

Max*_*olf 6

您需要通过将b附加到打开类型来将文件作为二进制文件打开.

File.open("#{ Rails.root }/tmp/uploaded_image.gif", "wb") do |f|
Run Code Online (Sandbox Code Playgroud)

您遇到的另一个问题是您的应用程序所做的任何事情.