我正在使用Ruby 1.93和Rails 3.2,我尝试使用函数send_data
和send_file
发送图片。目前我正在使用WebBrick作为开发服务器。
在这两种情况下,只要图片小于330kB,它似乎工作正常。但是当图片变得更大(比如1MB)时,Firefox,Maxthon和IE都会停止显示图像,Firefox会说图片包含错误。
我下载了损坏的图片文件,并将文件大小与原始图片进行了比较。在大图片上,文件大小约为400字节。
以下是一些经过尝试的代码块:
send_data img.to_blob, :stream => 'false', :filename => 'test.jpg', :type => 'image/jpg', :disposition => 'inline'
send_data( img.to_blob, :filename => "test.jpg" )
send_file( 'C:\WebProjects\RubyTest\public\data\pic3_3.jpg' , :disposition => 'inline')
File.open('C:\WebProjects\RubyTest\public\data\pic3_3.jpg', 'rb') do |f|
send_data f.read, :type => "image/jpeg", :disposition => "inline"
end
有趣的是,有了更大的文件Firefox,Maxthon和IE投诉有关图像损坏,黑莓手册能够显示图片。另一方面,Playbook在使用其他浏览器正确显示的一些较小图片时出现问题。
Btw .to_blob
是一个返回二进制对象的RMagick函数。但RMagick似乎工作正常。
答案 0 :(得分:2)
我想我找到了答案。 I replaced WEBrick by Thin as you can see on this website. WEBrick似乎有较大文件的问题。我不知道Thin是否是最终的解决方案,但至少它解决了这个问题。