Ruby on Rails:ERROR NoMethodError:未定义的方法`force_encoding' for nil:`tag_multipart_encoding'

时间:2015-11-15 03:01:40

标签: ruby-on-rails file http post multipart

我是RoR的初学者 我使用Android应用将文件上传到服务器(rails) 上传适用于单个文件,有时适用于多个文件。
我跟踪了堆栈跟踪并显示了一些变量,但我不明白为什么会发生错误。
在错误期间,第二个文件在名称中无法识别,但它正在根据文件类型进行识别。 我不明白为什么它对下面的那些特定文件起作用。
请帮我理解。

什么时候不起作用:

tag_multipart_encoding(filename,content_type,name)中的数据:


Floyd.txt
text / plain的
文件上传[]

图像/ JPEG

日志:

  

[2015-11-15 07:52:29] ERROR NoMethodError:未定义的方法force_encoding' for nil:NilClass /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart/parser.rb:197:in tag_multipart_encoding' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart/parser.rb:76:in block (2 levels) in parse' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart/parser.rb:252:in get_data' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart/parser.rb:75:in block in parse' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart/parser.rb:56:in循环' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart/parser.rb:56:in parse' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/multipart.rb:25:in parse_multipart' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/request.rb:376:in parse_multipart' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/request.rb:208:in POST' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/methodoverride.rb:39:in method_override_param' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/methodoverride.rb:27:in method_override' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/methodoverride.rb:15:in call' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/runtime.rb:18:in来电' /home/pi/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.3/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in call' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/lock.rb:17:in来电' /home/pi/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.3/lib/action_dispatch/middleware/static.rb:116:in call' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in来电' /home/pi/.rvm/gems/ruby-2.2.1/gems/railties-4.2.3/lib/rails/engine.rb:518:in call' /home/pi/.rvm/gems/ruby-2.2.1/gems/railties-4.2.3/lib/rails/application.rb:165:in来电' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/lock.rb:17:in call' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/content_length.rb:15:in来电' /home/pi/.rvm/gems/ruby-2.2.1/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in service' /home/pi/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in service' /home/pi/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in run' /home/pi/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in阻止在start_thread'

什么时候有效:

tag_multipart_encoding(filename,content_type,name)中的数据:


Megadeth Set.png
图像/ PNG
文件上传[]
tmp1.txt
text / plain的
文件上传[]

日志:

  

开始发布" /上传" for 2015.1-15 08:12:58 +0530的192.168.1.2   无法从192.168.1.2渲染控制台!允许的网络:127.0.0.1,:: 1,127.0.0.0/127.255.255.255   由HomeController处理#上传为HTML     参数:{" fileUpload" => [#,@ original_filename =" Megadeth Set.png",@ content_type =" image / png",@ headers =& #34;内容 - 处置:表格数据;命名= \"文件上传[] \&#34 ;; filename = \" Megadeth Set.png \" \ r \ nConContent-Type:image / png \ r \ nContent-Transfer-Encoding:binary \ r \ n">,#,@ original_filename =" tmp1.txt",@ content_type =" text / plain",@ header =" Content-Disposition:form-data;命名= \"文件上传[] \&#34 ;; filename = \" tmp1.txt \" \ r \ nConContent-Type:text / plain \ r \ nContent-Transfer-Encoding:binary \ r \ n">]}

0 个答案:

没有答案