I sent my original post to this group under the title "Is mime content
type case sensitive".  It's made it to page 3 and I think I've found a
bug so I'm re-posting.

I have a very simple example that uses one of the attachment plugins
to upload jpeg image files, creating thumbs on the way to storing all
on the filesystem.

>From the attachment_fu test:

mugshots_controller.rb has:

  def index
    @mugshots = Mugshot.find(:all,
                             :conditions => {:thumbnail => nil})

    respond_to do |format|
      format.html # index.html.erb
      format.xml { render :xml => @mugshots }
    end
  end

views/mugshots/index.html.erb:

<h1>Most Wanted</h1>
<% for mugshot in @mugshots -%>
  <%= link_to image_tag(mugshot.public_filename(:thumb)),
      mugshot.public_filename %>
<% end -%>
<p>
  <%= link_to('New shot', { :action => 'new' }) %>
</p>

mugshot.rb:

class Mugshot < ActiveRecord::Base
  has_attachment :content_type => :image,
                 :storage => :file_system,
                 :size => 0..3.megabytes,
                 :resize_to => '640x480>',
                 :thumbnails => { :thumb => '100x100>' }

  validates_as_attachment

end

..._create_mugshots.rb:

class CreateMugshots < ActiveRecord::Migration
  def self.up
    create_table :mugshots do |t|
      t.column :parent_id,  :integer
      t.column :content_type, :string
      t.column :filename, :string
      t.column :thumbnail, :string
      t.column :size, :integer
      t.column :width, :integer
      t.column :height, :integer

      t.timestamps
    end
  end

  def self.down
    drop_table :mugshots
  end
end

I added two images, "DSCN0925.jpg" and "DSCN0913.JPG" through the
application.  The unix file command for these images tells me:

DSCN0913.JPG: JPEG image data, EXIF standard 2.2
DSCN0925.jpg: JPEG image data, EXIF standard 2.2

And, using script/console, Mugshot.find(:all) gives:

>> Mugshot.find(:all)
=> [#<Mugshot id: 1, parent_id: nil, content_type: "image/jpeg",
filename: "DSCN0925.jpg", thumbnail: nil, size: 818302, width: 640,
height: 479, created_at: "2009-04-29 19:01:17", updated_at:
"2009-04-29 19:01:17">, #<Mugshot id: 2, parent_id: 1, content_type:
"image/jpeg", filename: "DSCN0925_thumb.jpg", thumbnail: "thumb",
size: 75300, width: 100, height: 75, created_at: "2009-04-29
19:01:18", updated_at: "2009-04-29 19:01:18">, #<Mugshot id: 3,
parent_id: nil, content_type: "image/jpeg", filename: "DSCN0913.JPG",
thumbnail: nil, size: 833312, width: 640, height: 479, created_at:
"2009-04-29 19:01:48", updated_at: "2009-04-29 19:01:48">, #<Mugshot
id: 4, parent_id: 3, content_type: "image/jpeg", filename:
"DSCN0913_thumb.JPG", thumbnail: "thumb", size: 162513, width: 100,
height: 75, created_at: "2009-04-29 19:01:49", updated_at: "2009-04-29
19:01:49">]
>>

NOTE: content_type for all four records is image/jpeg.

Observing the headers associated with a load of the view/mugshots/
index.html.erb view with Live HTTP gives:

----------------------------------------------------------
http://localhost:3000/mugshots/0000/0001/DSCN0925_thumb.jpg?1241031678

GET /mugshots/0000/0001/DSCN0925_thumb.jpg?1241031678 HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:
1.9.0.10) Gecko/2009042315 Firefox/3.0.10
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:3000/mugshots
Cookie: _mugshots_session=BAh7CDo...
If-Modified-Since: Wed, 29 Apr 2009 19:01:18 GMT
Cache-Control: max-age=0

HTTP/1.x 200 OK
Last-Modified: Wed, 29 Apr 2009 19:01:18 GMT
Content-Type: image/jpeg
Content-Length: 2780
Connection: keep-alive
Server: thin 1.0.0 codename That's What She Said
----------------------------------------------------------
http://localhost:3000/mugshots/0000/0003/DSCN0913_thumb.JPG?1241031709

GET /mugshots/0000/0003/DSCN0913_thumb.JPG?1241031709 HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:
1.9.0.10) Gecko/2009042315 Firefox/3.0.10
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:3000/mugshots
Cookie: _mugshots_session=BAh7CDo...
If-Modified-Since: Wed, 29 Apr 2009 19:01:49 GMT
Cache-Control: max-age=0

HTTP/1.x 200 OK
Last-Modified: Wed, 29 Apr 2009 19:01:49 GMT
Content-Type: text/plain
Content-Length: 4812
Connection: keep-alive
Server: thin 1.0.0 codename That's What She Said
----------------------------------------------------------

NOTE: the content_type associated with .jpg is image/jpeg
NOTE: the content_type associated with .JPG is text/plain

This difference causes Firefox to identify all .JPG files as "JPEG
Picture" rather than "image/jpeg...", resulting in different behavior
in the browser when the "link_to" link is followed.

Where should I take this problem?

Rick


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to