我是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:inblock (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:inblock 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:inparse' /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:inparse_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:inmethod_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:incall' /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:incall' /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:incall' /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:incall' /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:incall' /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:inservice' /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:inrun' /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">]}