<table>
<tr>
<td>hello</td>
<td><img src="xyz.png" width="100" height="100"></td>
</tr>
</table>
我想将这个xyz.png以blob形式保存到我的数据库中,那么如何将图像保存在blob
窗体中。如何使用watir将图像保存在blob字段中?
<table>
<tr>
<td>hello</td>
<td><img src="xyz.png" width="100" height="100"></td>
</tr>
</table>
我想将这个xyz.png以blob形式保存到我的数据库中,那么如何将图像保存在blob
窗体中。如何使用watir将图像保存在blob字段中?
img=cell.image.src
image = Net::HTTP.get_response(URI.parse(img)).body
这是为了将图像保存为blob形式。 – unknownbits 2013-05-04 17:40:33
看看我写的这个快速示例。基本上,我只是使用一个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标志并将二进制数据打印到屏幕上。你从来没有指定过你使用的数据库,所以我不想假设,但是不用做'放',你可以在那里做数据库调用。
thanx @James Flowers – unknownbits 2013-05-04 10:29:49
我已经得到了它的另一个解决方案。 – unknownbits 2013-05-04 10:36:43
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
您需要首先将它下载到本地桌面,然后使用路径位置将其保存到数据库。 – 2013-04-24 11:32:05
但我想直接将其保存在我的数据库的BLOB字段中。 – unknownbits 2013-04-24 11:41:48
这不是一个真正的问题,除了您正在使用它来浏览您的网站并找到标题图片的来源。之后的一切都是基本的Ruby,或者是用于处理任何你正在使用的数据库的帮助宝石。 – 2013-04-27 06:31:47