用java如何一次性上传多张图片到数据库

Python073

用java如何一次性上传多张图片到数据库,第1张

你说的这个问题,其实是表的设计问题。

只要在t_b中,设计列为3列即可。

id

,

t_a_id

,

picture

添加多个图片,不过是sql、语句。

最简单的办法,是利用for()循环,如:

for(int

i

=

0i<图片数i++){

//你的sql操作语句如。

//insert

图片i

into

t_b..

}

分给偶吧。。

^

^!

存储图片是后端服务器比较基础的功能,一般来说,图片可以存储在服务器的文件系统中,然后数据库中只需要存储url就可以了。另外一种办法是,将图片通过Base64编码后存储到数据库中,数据库中存储图片的base64编码的二进制可以使用TEXT(mysql)类型。

如果要存数据库的话,数据库存图片字段用blob形式的(照片:zp为例)。

而且不能直接存,在存之前zp字段先插入一个empty.BLOB(),

然后select ZP from 表 for update。再用输入流的形式写进去。

// 先检索出来字段,必须使用oracle的类:oracle.sql.BLOB

oracle.sql.BLOB blob = null

if (rs.next())

{

blob = (oracle.sql.BLOB) rs.getBlob("ZP")

// 到数据库的输出流

OutputStream outStream = blob.getBinaryOutputStream()

// 将输入流写到输出流

byte[] b = new byte[blob.getBufferSize()]

int len = 0

while ((len = is.read(b)) != -1)

{

outStream.write(b, 0, len)

// blob.putBytes(1,b)

}

is.close()

outStream.flush()

outStream.close()

}

取照片的话,取出来转化成流的形式直接创建jpg文件就行了。

Blob b = rs.getBlob("ZP")

File f = null

if (b != null) {

is = b.getBinaryStream()

f = new File( "c:\\zp.jpg")

if (!f.exists()) {

f.createNewFile()

}

os = new FileOutputStream(f)

int len

byte buf[] = new byte[2048]

while ((len = is.read(buf)) != -1) {

os.write(buf, 0, len)

}

is.close()

os.flush()

os.close()

}

强烈建议只存取照片路径,这样方便。