Problem with Upload module

Valery Kholodkov valery+nginxen at
Mon Aug 11 19:22:13 MSD 2008

As far as I understand ruby ideology, field name templates like
$ cannot refer to a valid collection element.

Therefore you have to alter your config in the following way:

  location /upload {
    # Pass altered request body to this location
    upload_pass   /internalupload;

    # Store files to this location
    upload_store /tmp;

    # Set specified fields in request body
    upload_set_form_field "${upload_field_name}[name]" "$upload_file_name";
    upload_set_form_field "${upload_field_name}[content_type]"
    upload_set_form_field "${upload_field_name}[path]" "$upload_tmp_path";

    upload_pass_form_field "^commit$|^photo\[title\]$";

And in your app change:

<%= file_field "photo", "uploaded_data" %>


<%= file_field_tag "photo", :id => "photo_uploaded_data" %>

Since I'm completely inexperienced in Ruby, there is still no guaranty
that this is going to work.

Also for security purposes declare your location /internalupload as
internal, so that no external requests to this location will be allowed:

  # Pass altered request body to a proxy
  location /internalupload {
    proxy_pass   http://thin_cluster;

> Hi Valery, I've attached the config.
> Very thanks for your time ;)

Best regards,
Valery Kholodkov

More information about the nginx mailing list