Господа, выручайте. Начал ковырять RoR3 недавно. Добрел до загрузки файлов. Мне нужно загрузить несколько файлов от пользака. Вроде делаю все по инструкции, но выкидывает эксепшен...
Вот вьюха:
| Код | <%= form_tag({:action => :pics_save}, :multipart => true) do %> <p>Логотип: <p> <%= file_field_tag 'logo' %><br> <p>Иконка над формой: <p> <%= file_field_tag 'input_pic' %><br> <p>Иконка 1: <p> <%= file_field_tag 'ico1' %><br> <p>Иконка 2: <p> <%= file_field_tag 'ico2' %><br> <p>Иконка 3: <p> <%= file_field_tag 'ico3' %><br> <%= submit_tag %> <% end %>
|
экшн в контроллере:
| Код | def pics_save "'это line 14 upload_logo = params[:logo] upload_inputpic = params[:input_pic] upload_ico1 = params[:ico1] upload_ico2 = params[:ico2] upload_ico3 = params[:ico3]
File.open(Rails.root.join('public', 'img', upload_logo.original_filename), 'w') do |file| file.write(upload_logo.read) end File.open(Rails.root.join('public', 'img', upload_inputpic.original_filename), 'w') do |file| file.write(upload_inputpic.read) end File.open(Rails.root.join('public', 'img', upload_ico1.original_filename), 'w') do |file| file.write(upload_ico1.read) end File.open(Rails.root.join('public', 'img', upload_ico2.original_filename), 'w') do |file| file.write(upload_ico2.read) end File.open(Rails.root.join('public', 'img', upload_ico3.original_filename), 'w') do |file| file.write(upload_ico3.read) end end
|
Пока без проверок и валидаций, просто сферическая загрузка в вакууме.
Вот ошибка и хеш:
| Код | Encoding::UndefinedConversionError in MadmController#pics_save
"\x89" from ASCII-8BIT to UTF-8
Rails.root: c:/money Application Trace | Framework Trace | Full Trace
app/controllers/madm_controller.rb:22:in `write' app/controllers/madm_controller.rb:22:in `block in pics_save' app/controllers/madm_controller.rb:21:in `open' app/controllers/madm_controller.rb:21:in `pics_save'
Request
Parameters:
{"utf8"=>"✓", "authenticity_token"=>"mowVsDT3yPBExo6+379JUvg+cYLwyLwbYwxiJO11b2M=", "logo"=>#<ActionDispatch::Http::UploadedFile:0x3180870 @original_filename="logo.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"logo\"; filename=\"logo.png\"\r\nContent-Type: image/png\r\n", @tempfile=#<File:C:/Users/Mysa/AppData/Local/Temp/RackMultipart20130210-4900-18rc5qc>>
|
Параметры не все привожу, там по всем остальным файлам все тоже.... Что за ошибка? Я так понимаю, одна часть пути к файлу в одной кодировке, а получаемое из параметров имя - в другой? Подскажите, плз... |