Bud*_*sey 10 ruby file-upload ruby-on-rails-3
我正在尝试上传文件,我收到以下错误:
"\xFF" from ASCII-8BIT to UTF-8
Run Code Online (Sandbox Code Playgroud)
我正在跟踪导轨指南他们正在做什么.这是我正在使用的代码.
file = params[:uploaded_file]
File.open(Rails.root.join('public', 'images', file.original_filename), 'w') do |f|
f.write(file.read)
end
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它不起作用.我究竟做错了什么?
更新 - 这是应用程序跟踪
app/controllers/shows_controller.rb:16:in `write'
app/controllers/shows_controller.rb:16:in `block in create'
app/controllers/shows_controller.rb:15:in `open'
app/controllers/shows_controller.rb:15:in `create'
Run Code Online (Sandbox Code Playgroud)
小智 33
我相信这是rails 3如何与ruby 1.9一起使用的一个变化,因为1.9支持编码,它会尝试将所有字符串转换为你在app配置(application.rb)中设置的任何编码,通常这是'utf-8' .
为避免编码问题,请以二进制模式打开文件,因此对于二进制可写模式,您的模式为'wb':
File.open(Rails.root.join('public', 'images', file.original_filename), 'wb') do |f|
f.write(file.read)
end
Run Code Online (Sandbox Code Playgroud)