java图片保存数据库
一种方法是把图像文件本身放在某个文件夹里,然后在数据表里设一个“路径“字段,类型为字符串,存图像的路径(比如“D:\files\xxx.jpg”)。
另一种方法是,把图像文件本身,作为一个巨大的二进制数据,放在数据库中;具体方法是,数据表中设置一个”数据“字段,类型是二进制数据,存放图像本体。
⑵ 用java语言我怎么把图片存放到数据库然后在取出来啊
如果要存数据库的话,数据库存图片字段用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();
}
强烈建议只存取照片路径,这样方便。
⑶ 在java代码中怎么从服务器上把图片拿来放到数据库里
大概流程:
1.上传插件的选择:此篇博文选择的是jQuery的zyupload文件上传插件;
2.上传请求发起后,java代码的处理:你是要将上传的图片只保存在服务器还是只保存在数据库还是说两者都采取。上传到服务器很简单,保存到数据库也很简单,但是此处需要考虑业务,图片保存在数据库时采用哪种保存方式(本博文业务来自于项目,因为图片数量巨多,故在数据库是通过保存图片的路径实现的,并非二进制流);
3.图片保存在数据库后,在前段页面的回显功能。
⑷ 如何在Java程序中选择添加图片,再存到数据库中
存储图片:
//加载驱动程序类
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。
Statement stmt=con.createStatement(); //建立Statement对象
FileInputStream str=new FileInputStream(filename); //图片文件路径
String sql="insert into picturenews(id,image) values(?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,id); //ID号
pstmt.setBinaryStream(2,str,str.available()); //图片数据
pstmt.execute();
//将数据存入数据库
out.println("Success,You Have Insert an Image Successfully");
图片读取:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
Statement stmt=con.createStatement();
ResultSet rs=null;
String sql = "select image from picturenews WHERE id="+id;
rs=stmt.executeQuery(sql);
if(rs.next()) {
//图片输出的输出流
InputStream in = rs.getBinaryStream("image");
byte b[] = new byte[0x7a120];
for(int i = in.read(b); i != -1;)
{
//将缓冲区的输入输出到页面
in.read(b);
}
}
/**
* 获得数据后可以按照自己的方法进行处理或者显示
*/
JLabel label=new JLabel(new ImageIcon(b)); //用JLabel进行显示
.....
⑸ 在java中如何将图片保存到数据库
存取图片就是二进制数据的存取问题
把图片以文件的时候读入到程序中
转换成byte
以byte显示保存到数据库中
另外,access保存文件~~不合适~
---------------------------
显示和存储没关系,看你要怎么显示了~显示到浏览器?
⑹ Java web 问题图片怎么存储到数据库。
一般数据库只存图片的路径。你可以在web下建一个目录(images),然后把上传的图片放在里面。最好是用系统时间命名,避免冲突。
具体路径是通过request.getRealPath("images")得到,让后把图片改名放进去。
数据库记住相对的路径(1111.jpg)就可以了,在页面可以<img src="$contextPath/imags/1111.jpg" .../>
⑺ Java web开发中怎么把图片存入数据库
两种方式:
把图片转换 ‘流数据’ 直接存在数据库图片字段中。
把图片 ‘流数据’ 存在文件夹内,数据库字段存对应图片地址。
第一种因为是直接存图片数据,写入读取比第二种慢,会占用数据库资源。
硬盘速度 > 数据库
图片转换成流数据,流转换成图片,具体方法你需要搞懂。看博客看到的。(我也没写过 [滑稽])
⑻ 在java中如何将图片保存到数据库
最好不要保存图片只存路径。
非要传的话保存二进制的流就可以了。
⑼ java读取照片保存到达梦数据库
存储图片是后端服务器比较基础的功能,一般来说,图片可以存储在服务器的文件系统中,然后数据库中只需要存储url就可以了。另外一种办法是,将图片通过Base64编码后存储到数据库中,数据库中存储图片的base64编码的二进制可以使用TEXT(mysql)类型。
⑽ java怎样把图片保存到数据库然后读出来在html中显示
一般是将图片本体存放到OSS,图片的路径存放到数据库,然后jsp中获取的是他的路径
然后用<img src="OSS的链接/"+你数据库的图片路径> 你可以用本地图片试试 将图片本体存放在你的E盘/image下面 然后你存入数据库的是你的图片名 然后将图片上传到本地 然后使用<img src='E盘/image'+数据库里面的图片名> 就可以显示了 你可以试试