alonli 发表于 2016-12-1 06:51:55

ruby 将图片读入sqlite,再取出

# -*- coding: utf-8 -*-
require 'sqlite3'
require 'base64'
 
ifFile.exist?('abc.db')
   File.delete('abc.db')
end
db =SQLite3::Database.new 'abc.db'
 
rows = db.execute<<-SQL
  createtable scenes(
    idinteger primary key,
   name varchar(30),
    imageblob
  );
SQL
 
image = File.open('t.jpg' ,'rb').read
db.execute("INSERT INTO scenes (image) VALUES " + 
"('#{Base64::encode64( image ) }');" )
 
db.execute("SELECT * FROM scenes" ) do |scene|
  image =Base64::decode64( scene )
  File.open("back.png", "wb" ) do |back_out|
   back_out << image
  end
end
 
 
#一晚功夫...
 
下面是小改动,result以hash返回数据
 
 
# -*- coding: utf-8-*-
require 'sqlite3'
require 'base64'
 
ifFile.exist?('abc.db')
   File.delete('abc.db')
end
db =SQLite3::Database.new 'abc.db'
 
 
rows = db.execute<<-SQL
  createtable scenes(
    idinteger primary key,
   name varchar(30),
    imageblob
  );
SQL
 
image = File.open('t.jpg' ,'rb').read
db.execute("INSERT INTO scenes (image) VALUES " + 
"('#{Base64::encode64( image )  }');" )
 
db.results_as_hash = true
db.execute("SELECT * FROM scenes" ) do |scene|
  image =Base64::decode64(scene['image'].to_s )
  File.open("back.png", "wb" ) do |back_out|
   back_out << image
  end
end
 
页: [1]
查看完整版本: ruby 将图片读入sqlite,再取出