2013-04-24 45 views
2
<table> 
<tr> 
<td>hello</td> 
<td><img src="xyz.png" width="100" height="100"></td> 
</tr> 
</table> 

我想将这个xyz.png以blob形式保存到我的数据库中,那么如何将图像保存在blob窗体中。如何使用watir将图像保存在blob字段中?

+1

您需要首先将它下载到本地桌面,然后使用路径位置将其保存到数据库。 – 2013-04-24 11:32:05

+0

但我想直接将其保存在我的数据库的BLOB字段中。 – unknownbits 2013-04-24 11:41:48

+0

这不是一个真正的问题,除了您正在使用它来浏览您的网站并找到标题图片的来源。之后的一切都是基本的Ruby,或者是用于处理任何你正在使用的数据库的帮助宝石。 – 2013-04-27 06:31:47

回答

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

这是为了将图像保存为blob形式。 – unknownbits 2013-05-04 17:40:33

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标志并将二进制数据打印到屏幕上。你从来没有指定过你使用的数据库,所以我不想假设,但是不用做'放',你可以在那里做数据库调用。

+0

thanx @James Flowers – unknownbits 2013-05-04 10:29:49

+0

我已经得到了它的另一个解决方案。 – unknownbits 2013-05-04 10:36:43

+0

IMG = cell.image.src \t \t \t \t \t \t \t \t图像=净:: HTTP.get_response(URI.parse(IMG))。身体 – unknownbits 2013-05-04 10:37:25

相关问题