Forum: Ruby on Rails unable to upload larger files

Posted by Amit Tomar (amit-singh)
on 2010-09-02 15:08
hii,
i am trying to upload some files to filesystem using rails application
when i use small size file everything is perfect but i when goes for
larger files i got error
this is my code


#this model file
class DataFile < ActiveRecord::Base

def self.save(upload)
    name =  upload['datafile'].original_filename
    directory = "//192.168.147.17/Smruti/streams"
    # create the file path
    path = File.join(directory, name)
    # write the file
    File.open(path, "wb") { |f| f.write(upload['datafile'].read) }
  end
end

#this is my controller
class UploadController < ApplicationController
def index
     render :file => 'app\views\upload\uploadfile.rhtml'
  end
  def uploadFile
    post = DataFile.save(params[:upload])
    render :text => "File has been uploaded successfully"
  end
end
Posted by Amit Tomar (amit-singh)
on 2010-09-02 15:09
Amit Tomar wrote:
> hii,
> i am trying to upload some files to filesystem using rails application
> when i use small size file everything is perfect but i when goes for
> larger files i got error
> this is my code
> 
> 
> #this model file
> class DataFile < ActiveRecord::Base
> 
> def self.save(upload)
>     name =  upload['datafile'].original_filename
>     directory = "//192.168.147.17/Smruti/streams"
>     # create the file path
>     path = File.join(directory, name)
>     # write the file
>     File.open(path, "wb") { |f| f.write(upload['datafile'].read) }
>   end
> end
> 
> #this is my controller
> class UploadController < ApplicationController
> def index
>      render :file => 'app\views\upload\uploadfile.rhtml'
>   end
>   def uploadFile
>     post = DataFile.save(params[:upload])
>     render :text => "File has been uploaded successfully"
>   end
> end

app/models/data_file.rb:9:in `write'
app/models/data_file.rb:9:in `save'
app/models/data_file.rb:9:in `open'
app/models/data_file.rb:9:in `save'
app/controllers/upload_controller.rb:6:in `uploadFile'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in 
`send'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in 
`perform_action_without_filters'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:617:in 
`call_filters'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:610:in 
`perform_action_without_benchmark'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/benchmarking.rb:68:in 
`perform_action_without_rescue'
C:/InstantRails-2.0-win/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/benchmarking.rb:68:in 
`perform_action_without_rescue'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/rescue.rb:136:in 
`perform_action_without_caching'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:13:in 
`perform_action'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in 
`cache'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/query_cache.rb:8:in 
`cache'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:12:in 
`perform_action'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in 
`send'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in 
`process_without_filters'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:606:in 
`process_without_session_management_support'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/session_management.rb:134:in 
`process'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:392:in 
`process'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:183:in 
`handle_request'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:110:in 
`dispatch_unlocked'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:123:in 
`dispatch'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in 
`synchronize'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in 
`dispatch'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:132:in 
`dispatch_cgi'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:39:in 
`dispatch'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:76:in 
`process'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:74:in 
`synchronize'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:74:in 
`process'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:159:in 
`process_client'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:158:in 
`each'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:158:in 
`process_client'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in 
`initialize'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in 
`new'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in 
`initialize'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in 
`new'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:282:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:281:in 
`each'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:281:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:128:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/command.rb:212:in 
`run'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:281
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in 
`load_without_new_constant_marking'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in 
`load'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in 
`new_constants_in'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:142:in 
`load'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/servers/mongrel.rb:64
C:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
C:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`require'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in 
`require'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in 
`new_constants_in'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in 
`require'
C:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
C:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
C:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`require'
script/server:3
Posted by Jeffrey L. Taylor (Guest)
on 2010-09-07 09:31
(Received via mailing list)
Quoting Amit Tomar <lists@ruby-forum.com>:
> hii,
> i am trying to upload some files to filesystem using rails application
> when i use small size file everything is perfect but i when goes for
> larger files i got error
> this is my code
> 

Check the Webserver's (e.g. Apache) file size limit.  It may be set to 
some
small value.

HTH,
  Jeffrey
Posted by Amit Tomar (amit-singh)
on 2010-09-07 10:09
Jeffrey L. Taylor wrote:
> Quoting Amit Tomar <lists@ruby-forum.com>:
>> hii,
>> i am trying to upload some files to filesystem using rails application
>> when i use small size file everything is perfect but i when goes for
>> larger files i got error
>> this is my code
>> 
> 
> Check the Webserver's (e.g. Apache) file size limit.  It may be set to 
> some
> small value.
> 
> HTH,
>   Jeffrey

Thanks for  responding Jeffrey

but i am new to rails ,so where do i find Webserver file size limit ,am 
running
mongrel as server  and one more thing i would like to mention is when am 
trying to upload large file (320 mb),file is being uploaded to phyical 
location but i am getting error like

Invalid argument -
//192.168.147.27/Smruti/streams/predator_720x480_5mbps_30fps_17minclip.264.filepart

When i looked into the streams folder file is there...

Posted by radhames brito (Guest)
on 2010-09-07 15:47
(Received via mailing list)
is that your app? what are you using to handle downloads?
Posted by Jeffrey L. Taylor (Guest)
on 2010-09-07 16:06
(Received via mailing list)
Quoting Amit Tomar <lists@ruby-forum.com>:
> > some
> trying to upload large file (320 mb),file is being uploaded to phyical 
> location but i am getting error like
> 
> Invalid argument -
> //192.168.147.27/Smruti/streams/predator_720x480_5mbps_30fps_17minclip.264.filepart
> 
> When i looked into the streams folder file is there...
> 

I don't know Mongrel, but I'd look in the Mongrel configuration file.  I
expect Mongrel is cutting off or aborting the file transfer and then 
throwing
the InvalidArgument exception.

In Nginx, the setting is:

        client_max_body_size 0; # don't limit the upload file size

In Apache, the setting is:

    LimitRequestBody 500000

Look for something similar.

HTH,
  Jeffrey
Posted by Amit Tomar (amit-singh)
on 2010-09-08 08:18
radhames brito wrote:
> is that your app? what are you using to handle downloads?


Am not doing any downloads.I am just trying to upload and for that i 
wrote the
code above .I also mentioned the error that i got .
Posted by Amit Tomar (amit-singh)
on 2010-09-08 10:35
Jeffrey L. Taylor wrote:
> Quoting Amit Tomar <lists@ruby-forum.com>:
>> > some
>> trying to upload large file (320 mb),file is being uploaded to phyical 
>> location but i am getting error like
>> 
>> Invalid argument -
>> //192.168.147.27/Smruti/streams/predator_720x480_5mbps_30fps_17minclip.264.filepart
>> 
>> When i looked into the streams folder file is there...
>> 
> 
> I don't know Mongrel, but I'd look in the Mongrel configuration file.  I
> expect Mongrel is cutting off or aborting the file transfer and then 
> throwing
> the InvalidArgument exception.
> 
> In Nginx, the setting is:
> 
>         client_max_body_size 0; # don't limit the upload file size
> 
> In Apache, the setting is:
> 
>     LimitRequestBody 500000
> 
> Look for something similar.
> 
> HTH,
>   Jeffrey


Jeffrey i edit the code and things starts working for me



#this model file
class DataFile < ActiveRecord::Base

def self.save(upload)
    name =  upload['datafile'].original_filename
    directory = "c:/dm"
    # create the file path
    path = File.join(directory, name)
    # write the file
    File.open(path, "wb") { |f| f.write(upload['datafile'].read) }

 target="//192.168.147.17/Smruti/streams"
     File.copy(path,target)


  end
end
i added two lines
target="//192.168.147.17/Smruti/streams"
File.copy(path,target)
ans i changed
    directory = "c:/dm"
and things are working for me
but could you tell me what was happening before why am getting
Invalid argument -
> //192.168.147.27/Smruti/streams/predator_720x480_5mbps_30fps_17minclip.264.filepart

Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.