# Problem uploading files

**URL:** <https://www.ruby-forum.com/t/problem-uploading-files/179372>\
**Category:** Rails\
**Created:** [November 23, 2009, 6:17pm UTC](https://www.ruby-forum.com/t/problem-uploading-files/179372 "2009-11-23T18:17:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![penguinjr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b2d939/32.png) [@penguinjr](https://www.ruby-forum.com/u/penguinjr)\
**Post date:** [November 23, 2009, 6:17pm UTC](https://www.ruby-forum.com/t/problem-uploading-files/179372/1 "2009-11-23T18:17:46Z")

</div>

Hello, i have problem when i upload files to the website, i can’t  
understand it. I use Apache 2 + Ubuntu, and Apache returns Error 500  
(captured by the application)

I use attachment and shared-mime-info and i don’t understand why don’t  
work, temp files are written with 600, and not 644 :S

Sometimes use /tmp/CGI\* other times use /rails\_dir/tmp/attachment\_fu :S

I use Apache 2.2 + mod\_rails + attachment\_fu + shared-mime-info + rails  
2.2.2

the production.log is this:

* * *

ERROR ERROR ERROR - /rails\_dir/log/production.log - Thank you for the  
help!

* * *

NoMethodError (undefined method `match_filename?' for nil:NilClass): /app/models/user_file.rb:38:in`set\_content\_type\_by\_content’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active\_record/associations/association\_proxy.rb:214:in  
`send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/associations/association_proxy.rb:214:in`method\_missing’  
/app/controllers/account\_controller.rb:352:in `save' /app/controllers/account_controller.rb:72:in`register’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/base.rb:1253:in  
`send' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in`perform\_action\_without\_filters’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/filters.rb:617:in  
`call_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:610:in`perform\_action\_without\_benchmark’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/benchmarking.rb:68:in  
`perform_action_without_rescue' /usr/lib/ruby/1.8/benchmark.rb:293:in`measure’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/benchmarking.rb:68:in  
`perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/rescue.rb:136:in`perform\_action\_without\_caching’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/caching/sql\_cache.rb:13:in  
`passenger_orig_perform_action' /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in`cache’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active\_record/query\_cache.rb:8:in  
`cache' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:12:in`passenger\_orig\_perform\_action’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/railz/request\_handler.rb:65:in  
`perform_action' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in`send’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/base.rb:524:in  
`process_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:606:in`process\_without\_session\_management\_support’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/session\_management.rb:134:in  
`process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:392:in`process’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/dispatcher.rb:183:in  
`handle_request' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:110:in`dispatch\_unlocked’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/dispatcher.rb:123:in  
`dispatch' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in`synchronize’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/dispatcher.rb:122:in  
`dispatch' /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:132:in`dispatch\_cgi’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action\_controller/dispatcher.rb:39:in  
`dispatch' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/railz/request_handler.rb:50:in`process\_request’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/abstract\_request\_handler.rb:207:in  
`main_loop' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/railz/application_spawner.rb:378:in`start\_request\_handler’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/railz/application\_spawner.rb:336:in  
`handle_spawn_application' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/utils.rb:183:in`safe\_fork’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/railz/application\_spawner.rb:334:in  
`handle_spawn_application' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/abstract_server.rb:352:in` **send** ’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/abstract\_server.rb:352:in  
`main_loop' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/abstract_server.rb:196:in`start\_synchronously’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/abstract\_server.rb:163:in  
`start' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/railz/application_spawner.rb:213:in`start’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/spawn\_manager.rb:262:in  
`spawn_rails_application' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/abstract_server_collection.rb:126:in`lookup\_or\_add’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/spawn\_manager.rb:256:in  
`spawn_rails_application' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/abstract_server_collection.rb:80:in`synchronize’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/abstract\_server\_collection.rb:79:in  
`synchronize' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/spawn_manager.rb:255:in`spawn\_rails\_application’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/spawn\_manager.rb:154:in  
`spawn_application' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/spawn_manager.rb:287:in`handle\_spawn\_application’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/abstract\_server.rb:352:in  
` __send__' /var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion_passenger/abstract_server.rb:352:in`main\_loop’  
/var/lib/gems/1.8/gems/passenger-2.2.5/lib/phusion\_passenger/abstract\_server.rb:196:in  
`start\_synchronously’  
/var/lib/gems/1.8/gems/passenger-2.2.5/bin/passenger-spawn-server:61

(23 Nov 18:44): [account.register] anonymous: HTTP 500 - .

* * *

INSTALLED GEMS - sudo gem list - Thank you for the help!

* * *

\*\*\* LOCAL GEMS \*\*\*

actionmailer (2.2.2)  
actionpack (2.2.2)  
activerecord (2.2.2)  
activeresource (2.2.2)  
activesupport (2.3.4, 2.2.2)  
archive-tar-minitar (0.5.2)  
cgi\_multipart\_eof\_fix (2.5.0)  
color (1.4.0)  
facets (2.6.0)  
fastthread (1.0.7)  
flay (1.4.0)  
flog (2.2.0)  
gem\_plugin (0.2.3)  
hoe (2.3.3)  
jscruggs-metric\_fu (1.1.1)  
json\_pure (1.1.9)  
login\_generator (1.2.2)  
mojombo-chronic (0.3.0)  
mysql (2.7)  
passenger (2.2.5)  
pdf-writer (1.1.8)  
rails (2.2.2)  
rake (0.8.7)  
RedCloth (4.2.0)  
relevance-rcov (0.9.2.1)  
rmagick (2.9.2)  
ruby\_parser (2.0.4)  
rubyforge (2.0.3)  
sexp\_processor (3.0.3)  
shared-mime-info (0.1)  
spreadsheet-excel (0.3.5.1)  
topfunky-gruff (0.3.5)  
transaction-simple (1.4.0)

* * *

---

<div class="post-metadata">

**Author:** ![penguinjr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b2d939/32.png) [@penguinjr](https://www.ruby-forum.com/u/penguinjr)\
**Post date:** [November 23, 2009, 6:18pm UTC](https://www.ruby-forum.com/t/problem-uploading-files/179372/2 "2009-11-23T18:18:20Z")

</div>

Log uploaded there:

> <https://gist.github.com/241194>

---

<div class="post-metadata">

**Author:** ![penguinjr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b2d939/32.png) [@penguinjr](https://www.ruby-forum.com/u/penguinjr)\
**Post date:** [November 23, 2009, 8:23pm UTC](https://www.ruby-forum.com/t/problem-uploading-files/179372/3 "2009-11-23T20:23:03Z")

</div>

Penguin Junior wrote:

> NoMethodError (undefined method `match\_filename?’ for nil:NilClass):

> ```
> /app/controllers/account_controller.rb:352:in `save'
> /app/controllers/account_controller.rb:72:in `register'
> 
> ```

Why are you using match\_filename? Where? Does the method exist? Should  
it exist?

---

<div class="post-metadata">

**Author:** ![penguinjr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b2d939/32.png) [@penguinjr](https://www.ruby-forum.com/u/penguinjr)\
**Post date:** [November 23, 2009, 9:27pm UTC](https://www.ruby-forum.com/t/problem-uploading-files/179372/4 "2009-11-23T21:27:07Z")

</div>

Aldric G. wrote:

> Penguin Junior wrote:
> 
> > NoMethodError (undefined method `match\_filename?’ for nil:NilClass):
> 
> > ```
> > /app/controllers/account_controller.rb:352:in `save'
> > /app/controllers/account_controller.rb:72:in `register'
> > 
> > ```
> 
> Why are you using match\_filename? Where? Does the method exist? Should  
> it exist?

It’s a method of shared-mime-info

And exist.

The problem it’s that try to apply a incorrect file (nil).

attachment\_fu random upload the files to /tmp (like CGIXXX) or  
/raildir/tmp/attachment\_fu and fails!

Ah!

The permission with upload it are 600 (must be 644).
