如何使用watir在blob字段中保存图像?

时间:2013-04-24 11:30:08

标签: ruby watir

<table>  
<tr>
<td>hello</td>
<td><img src="xyz.png" width="100" height="100"></td>
</tr>
</table>

我想将blob格式的xyz.png保存到我的数据库中,那么如何以blob形式保存图像。

2 个答案:

答案 0 :(得分:2)

看看我写的这个简单例子。基本上,我只是使用id找到我想要的图像,然后获取它的来源。然后,我打开一个临时文件来保存图像的内容,最后,我打开该src的url并将其写入临时文件。使用tempfile的好处是没有清理。

require 'watir-webdriver'
require 'open-uri'
require 'tempfile'

browser = Watir::Browser.new :firefox
browser.goto("http://www.reddit.com")
img = browser.image(:id, "header-img").src

tempFile = Tempfile.new('tempImage')
open(img, 'rb') do |image|
  tempFile.write(image.read)
end
tempFile.rewind
puts tempFile.read ###Make your database call here, simply save this tempFile.read as a blob 
tempFile.close
tempFile.unlink # completely deletes the temp file
browser.close

对于这个例子,我只是获取reddit徽标并将二进制数据打印到屏幕上。你从来没有指定你正在使用哪个数据库,所以我不想假设,但不是做'put'而是在那里调用你的数据库。

答案 1 :(得分:2)

img=cell.image.src
image = Net::HTTP.get_response(URI.parse(img)).body