file-upload - Encoding::UndefinedConversionError 尝试上传图像时

标签 file-upload ruby-on-rails-3.1

我正在使用以下代码将图像上传到我的 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

我的表格是这样的

<%= 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 %>

但是在尝试提交表单时出现以下错误。

Encoding::ConfigureCategoryController#configure_product 中的 UndefinedConversionError

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

我将书写模式从 'w' 替换为 'wb',现在我得到了

ConfigureCategoryController#configure_product 中没有方法错误

nil:NilClass 的未定义方法“名称”

rails 的新功能。肯定会感谢您的帮助。

最佳答案

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

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

您遇到的另一个问题是特定于您的应用程序的。

关于file-upload - Encoding::UndefinedConversionError 尝试上传图像时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051731/

相关文章:

ruby-on-rails - rake 任务变量

javascript - 如何使用 javascript 以表单形式调整多个图像的大小、预览和上传

java - 您能否在将数据库上传到我的网站时在 Java 应用程序与 Access 数据库之间创建连接

php - 删除和替换图像文件但仍然显示旧图像

ruby-on-rails - Wicked_PDF 仅下载 - Rails 3.1

ruby - 在任何来源中都找不到 rack-cache-1.0.3

Spring Boot不使用CommonsMultipartResolver?

php - 表单提交错误后如何保留文件输入值?

ruby-on-rails - 将一个 Controller 重定向到另一个 Controller

ruby-on-rails - rails 3.1 Assets 管道 : *. css 未预编译,但在 list 中