【发布时间】:2013-05-20 07:51:39
【问题描述】:
在我进入 Paperclip 或载波。
我将上传的方法与我的#create 一起放入控制器中,我的计划是使用 :image 列创建新记录,该列存储我上传的文件名。
我的#create 有这个:
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'w') do |file|
file.write(uploaded_io.read)
end
当我完全按照 Rails 指南进行文件上传时,我可以在 public/uploads 中看到该文件,但在浏览器中出现编码错误:Encoding::UndefinedConversionError"\x89" from ASCII-8BIT to UTF-8
\x89 是文件名后缀上的点吗?即:.png
我发现一个 StackOverflow 帖子说将“b”添加到 File.open,修复了编码错误,但我得到了一个不同的错误。这个StackOverflow post 涵盖了我的错误,但我相信我正在遵循解决方案并且仍然有错误。
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
我收到以下类型错误,但没有编码错误。另一方面,文件上传。
TypeError: can't cast ActionDispatch::Http::UploadedFile to string:
对我做错了什么有什么建议吗?在我转向 Paperclip 或 CW 之前,很高兴看到这项工作
【问题讨论】:
标签: file-upload ruby-on-rails-4