[Instantrails-users] Fw: [Rails] Mongrel errors on file upload

Curt Hibbs curt.hibbs at gmail.com
Sat May 27 10:04:30 EDT 2006


Doesn't seem likely that this is specific to IR. Have you asked Zed about
this?

Curt

On 5/24/06, Bill Walton <bill.walton at charter.net> wrote:
>
>  Sorry for the cross-post but I wanted to ask here too since it's
> certainly possible that this is an InstantRails-specific problem.
>
> Thanks,
> Bill
> ----- Original Message ----- *From:* Bill Walton <bill.walton at charter.net>
> *To:* rails at lists.rubyonrails.org
> *Sent:* Wednesday, May 24, 2006 2:50 PM
> *Subject:* [Norton AntiSpam] [Rails] Mongrel errors on file upload
>
> I did a spike in my sandbox to make sure I understood how to do file
> uploads using CGI and there seems to be a problem with Mongrel.  WEBrick
> doesn't display the problem, but I can reproduce it everytime with Mongrel.
> I'd really appreciate it if someone would try out the code below and see if
> they see the same thing.
>
> The browser behavior is:
>  - under IE6, a Page Not Found error
>  - under Firefox, a blank white page
>
> The display in the command window is not browser-dependent.  The error
> listing starts with "Error calling Dispatcher.dispatch #<TypeError:
> superclass mismatch for class Tempfile>".  I've included the entire error
> listing below.
>
> The controller and view code is given below.
>
> The CGI file upload delivers either an IOString or a Tempfile, depending
> on the size of the file being uploaded.  I'm using a 3K file to test
> IOString, and a 10K file to test Tempfile.  Both are XML text files.
>
> The scenerio that produces the error is:
> 1) mongrel_rails start
> 2) launch brower and nav to http://localhost:3000/create
> 3) upload small file
> 4) upload large file
>
> If I upload in reverse, first the large file and then the small file,
> everything's fine.
>
> If I upload the small file and then the large file, Mongrel sends my
> browser off into the weeds and shows me the following in the command window.
>
>
> C:\InstantRails-1.3\rails_apps\sandbox>mongrel_rails start
> Running Mongrel server in development mode at 0.0.0.0:3000
> Server Ready.  Use CTRL-Pause/Break to quit.
> Error calling Dispatcher.dispatch #<TypeError: superclass mismatch for
> class Tem
> pfile>
> C:/InstantRails-1.3/ruby/lib/ruby/1.8/tempfile.rb:12
> C:/InstantRails-1.3
> /ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in
> `require'
> C:/InstantRails-1.3/ruby/lib/ruby/1.8/cgi.rb:987:in `read_multipart'
> C:/InstantRails-1.3/ruby/lib/ruby/1.8/cgi.rb:984:in `read_multipart'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/cgi_ext/raw_post_data_fix.rb:20:in
> `initialize_query'
> C:/InstantRails-1.3/ruby/lib/ruby/1.8/cgi.rb:2270:in `initialize'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel/cgi.rb:41:in
> `initialize'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel/rails.rb:57:in
> `process'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel.rb:389:in
> `process_client'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel.rb:359:in
> `initialize'
> C:/InstantRails-1.3/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel.rb:358:in
> `initialize'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel.rb:356:in
> `initialize'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel.rb:355:in
> `initialize'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/bin/mongrel_rails:91:in
> `start_mongrel'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/bin/mongrel_rails:144:in
> `run'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32/lib/mongrel/command.rb:163:in
> `run'
> C:/InstantRails-1.3/ruby/lib/ruby/gems/1.8/gems/mongrel-0.3.11-mswin32
> /bin/mongrel_rails:228
> C:/InstantRails-1.3/ruby/bin/mongrel_rails:18
> Here's my code.
>
> ------------  create_controller.rb  --------------
> class CreateController < ApplicationController
>
>   def index
>   end
>
>   def read_in
>     if params[:file_to_upload].instance_of?(Tempfile)
>       FileUtils.copy(params[:file_to_upload].local_path,
> "#{RAILS_ROOT}/public/sandbox1.xml")
>       @location_display = "Copied the Tempfile to sandbox1.xml"
>     else
>       File.open("#{RAILS_ROOT}/public/sandbox2.xml","w"){|f|
>          f.write(params[:file_to_upload].read)
>          f.close}
>       @location_display = "Saved the IOString to sandbox2.xml"
>     end
>   end
> end
>
> ------------  index.rhtml  ------------
> <h1>Choose the file to upload:</h1>
>
> <%= start_form_tag({:action => 'read_in'}, :method => "POST", :multipart
> => true) %>
>
>   <label>File to Upload:</label>
>   <%= file_field_tag "file_to_upload" %><br/><br/>
>
>   <%= submit_tag value="Upload" %>
> <% end_form_tag %>
>
> --------------- read_in.rhtml  --------------
> <h1>File stored at:</h1>
>
> <%=h @location_display %>
>
> --------------------------------------------------
>
> I'm running Windows XP.  I seem to be having a "blond moment" and can't
> remember how to check Rails / Ruby versions but am using InstantRails 1.3.
>
> Thanks in advance to anyone who'll make the time to verify (or not) the
> problem I'm seeing.
>
> Best regards,
> Bill
>
> ------------------------------
>
> _______________________________________________
> Rails mailing list
> Rails at lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>
>
> _______________________________________________
> Instantrails-users mailing list
> Instantrails-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/instantrails-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/instantrails-users/attachments/20060527/2174c276/attachment.htm 


More information about the Instantrails-users mailing list