你说的这个问题,其实是表的设计问题。
只要在t_b中,设计列为3列即可。
id
,
t_a_id
,
picture
添加多个,不过是sql、语句。
最简单的办法,是利用for()循环,如:
for(int
i
=
0;i<数;i++){
//你的sql *** 作语句如。
//insert
i
into
t_b
}
分给偶吧。。
^
^!
上传一般考虑两种办法:1、上传到服务器,数据库中存储服务器上的相对路径;2、转换为二进制流存入到数据库中。现在常用的做法都是选择第一种,因为第二种太占数据库空间,而且查找读取效率不高。很多开源的文件上传框架(比如spring中的commons-fileupload)都是采用第一种方式。上传到服务器不会影响系统的运行速度,你可以选择将的目录建立在非系统盘,存储容量比较大的盘,如F盘等。注意名字不要重复,建议用uuid
首先这是一种SB做法,保存到数据库这个很浪费数据库资源, 通常情况下等文件都是用ftp服务器来存储文件的 为什么要用base64进行编码是因为, base64会把文件这个文件转换成字符串, base64编码后得到的是一组字符串, 为什么要用blob类型, 因为这个类型可以存储4GB数据, 数据库中普通的 varchar varchar2 text等类型都有长度的限制
把上传的照片存到服务器下并把路径存入数据库,读取时使用File对象根据数据库内存储的照片路径读取照片。注意from表单的这两个属性enctype="multipart/from-data" method="post"
这种代码网上不是一大片吗
public boolean storeImage(File file){try{
// 打开文件
FileInputStream fin = new FileInputStream(file);
// 建一个缓冲保存数据
ByteBuffer nbf = ByteBufferallocate((int) filelength());
byte[] array = new byte[1024];
int offset = 0, length = 0;
// 读存数据
while((length = finread(array)) > 0){
if(length != 1024) nbfput(array,0,length);
else nbfput(array);
offset += length;
}
// 关闭文件
finclose();
// 新建一个数组保存要写的内容
byte[] content = nbfarray();
String sql = "insert into images (bin_data) values () ";
PreparedStatement pstmt = connprepareStatement(sql);
pstmtsetBytes(1,content);
pstmtexecute();
pstmtclose();
}catch(Exception e){
eprintStackTrace();
return false;
}
return true;
}
以上就是关于用java如何一次性上传多张图片到数据库全部的内容,包括:用java如何一次性上传多张图片到数据库、java项目客户上传的图片放到哪好、Java 保存图片到数据库时,为什么要对图片进行base64编码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)