2

我正在使用 Ruby 1.93 和 Rails 3.2,我尝试使用函数send_datasend_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 似乎工作正常。

4

1 回答 1

2

我想我找到了答案。 如您在此网站上所见,我将 WEBrick 替换为 Thin。 WEBrick 似乎在处理较大的文件时存在问题。我不知道 Thin 是否是最终的解决方案,但至少它解决了问题。

于 2012-12-31T19:54:40.047 回答