java上传图片到数据库,java如何将图片保存在数据库中
大家好,关于java上传图片到数据库很多朋友都还不太明白,今天小编就来为大家分享关于java如何将图片保存在数据库中的知识,希望对各位有所帮助!
如何在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 web 问题图片怎么存储到数据库。
packageshop.car.control;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.jsp.JspFactory;
importjavax.servlet.jsp.PageContext;
importshop.car.model.GoodService;
importcom.jspsmart.upload.SmartUpload;
importcom.jspsmart.upload.SmartUploadException;
publicclassImageInputextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
PrintWriterout=response.getWriter();
PageContextpageContext=null;
JspFactoryjsp=null;
//实例化上载bean
SmartUploadmySmartUpload=newSmartUpload();
jsp=JspFactory.getDefaultFactory();
pageContext=jsp.getPageContext(this,request,response,"",true,
8192,true);
//初始化
mySmartUpload.initialize(pageContext);
//设置上载的最大值
mySmartUpload.setMaxFileSize(500*1024*1024);
//设定允许上传的文件(通过扩展名限制)
mySmartUpload.setAllowedFilesList("jpg");
//上载文件
try{
mySmartUpload.upload();
}catch(SmartUploadExceptione2){
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}
intcount=0;
try{
count=mySmartUpload.save("/upload",SmartUpload.SAVE_VIRTUAL);
}catch(SmartUploadExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
out.println(count+"个文件上传成功!<br>");
out.println("TEST="+mySmartUpload.getRequest().getParameter("TEST")
+"<BR><BR>");
//循环取得所有上载的文件
for(inti=0;i<mySmartUpload.getFiles().getCount();i++){
//取得上载的文件
com.jspsmart.upload.FilemyFile=mySmartUpload.getFiles().getFile(
i);
if(!myFile.isMissing()){
//取得上载的文件的文件名
StringmyFileName=myFile.getFileName();
//取得不带后缀的文件名
Stringsuffix=myFileName.substring(0,myFileName
.lastIndexOf('.'));
//取得后缀名
Stringext=mySmartUpload.getFiles().getFile(0).getFileExt();
//取得文件的大小
intfileSize=myFile.getSize();
//保存路径
Stringaa=request.getRealPath(request.getServletPath())
+myFileName;
Stringtrace=aa+myFileName;
Strings=newString(trace.getBytes("ISO-8859-1"),"utf-8");
//取得别的参数
Stringexplain=(String)mySmartUpload.getRequest()
.getParameter("text");
Stringsend=(String)mySmartUpload.getRequest().getParameter(
"send");
//将文件保存在服务器端
try{
myFile.saveAs(trace,SmartUpload.SAVE_PHYSICAL);
}catch(SmartUploadExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//下面的是将上载的文件保存到数据库中
//将文件读到流中
java.io.Filefile=newjava.io.File(s);
java.io.FileInputStreamfis=newjava.io.FileInputStream(file);
out.println(file.length());
GoodService.addGoods(fis,file);
out.println(("上载成功!!!").toString());
}else{
out.println(("上载失败!!!").toString());
}
}//与前面的if对应
out.flush();
out.close();
}
}
java如何将图片保存在数据库中
一般都是这样的,就是在你服务器有一个专门放置图片的文件夹,然后数据库保存的是你服务器图片的路径。需要用的时候就去数据库里面取路径。得到路径以后你想怎么处理图片是你的事情了。
至于如何去数据库取路径这个就是简单的db操作。
加载驱动类:
Class.forName(DBDriver);
获取连接:
Connection conn= DriverManager.getConnection(url,username,password);
创建操作对象:
PreparedStatement stmt= con.prepareStatement(sql);
执行操作:
ResultSet rs= stmt.executeQuery();
遍历结果:
List list= new ArrayList();
while(rs.next()){
//具体操作,通常用rs.getString(name)取值
Image img= new Image();//图片类对应你数据库中图片表格
img.setSrc(rs.getString("src"));//假设你数据库中image表中图片地址字段是src
list.add(img);
}
记得关闭资源:
rs.close();
stmt.close();
con.close();
看你的意思是已经取出来了不知道怎么显示:
你取出来之后可以把图片放在一个list里面然后去页面上遍历这个list
<c:forEach var="chakan1" items="list">
<tr>
<td>
<img src="${chakan1.src}"/>
</td>
</tr>
</c:forEach>
大致应该是这样
关于本次java上传图片到数据库和java如何将图片保存在数据库中的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。