我正在使用 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 抱怨图像损坏,而 Blackberry Playbook 能够显示图片。另一方面,Playbook 在其他浏览器正确显示的一些较小图片方面存在问题。
Btw.to_blob
是一个返回二进制对象的 RMagick 函数。但 RMagick 似乎工作正常。