jsp数据库图片
① jsp中 怎么把图片直接存入数据库中,最好有例子
....首先..可以选择Apache里面的upload包....这个是把文件传到服务器上的上传组件....然后是存到数据库里....那就要看你什么数据库了....比如Oracle..就是Blob至Access...就是
对象
字段....存取方法都是不一样的..要分别对待
有个通用方法,你找到图片文件之后,建立输入流,然后创建bytearrayoutputstream,然后从输入流中读字节到后面那个流中,并冲它里面产生字节数组保存到byte字段中
其实建议你不要将图片直接上传到数据库
图片上传到数据库要用到
blob大对象(以oracle为例),这样影响程序性能,你可以将图片上传到指定文件夹,同时将图片保存的路径+文件名上传到数据库,要显示就读取这个这个路径找到图片,然后显示.刚做了个这个代码
② JSP 从数据库中如何取得图片的路径
我的笔记:
6:对数据库存取图片进行的操作:
核心思想:通过二进制流的形式进行存储和读取。
具体:存储图片:一般是通过文件上传的方式进行存储的
1.首先通过request获得表单中图片的地址
2.然后根据这个路径可以使FileInputStream获得文件输入流
3.pstmt.setBinaryStream(i,
fis,
fis.available())
最后pstmt.executeUpdate();就完成整个插入语句了。
读取:1.根据url的id传一个对应数据库摸个图片的id号
2.根据这个id执行查询,通过rst.getBinaryStream(1)返回一个输入流(里面存的是图片)
3.读输入流,放到字节数组中,再通过response返回一个能输出二进制流的ServletOutputStream实例(ServletOutputStream
sos=
response.getOutputStream();
),
4.通过这个输出流把字节数组的字节流写出
希望对你有所帮助哈
③ 数据库中照片怎么在jsp中显示
用JSP从数据库中读取图片并显示在网页上:
环境mysql+tomcat:
<1>先在mysql下建立如下的table. 并insert图像
mysql.sql文件如下:
CREATE TABLE photo (
photo_no int(6) unsigned NOT NULL auto_increment,
image blob,
PRIMARY KEY (`photo_no`)
)
<2>把show.jsp放在tomcat的任意目录下. show.jsp作用:从数据库中读出blob,并产生image/jpg.
show.jsp文件如下:
<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
<%
String photo_no = request.getParameter("photo_no");
//mysql连接
Class.forName("com.mysql.jdbc.Driver").newInstance();
String URL="jdbc:mysql://localhost:3306/job?user=root&password=111111";
Connection con = DriverManager.getConnection(URL);
//oracle连接
//String URL="jdbc:oracle:thin@localhost:1521:orcl2";
//user="system";
//password="manager";
//Connection con = DriverManager.getConnection(URL,user,password);
try{
// 准备语句执行对象
Statement stmt = con.createStatement();
String sql = " SELECT * FROM PHOTO WHERE photo_no = "+ photo_no;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
Blob b = rs.getBlob("photo_image");
long size = b.length();
//out.print(size);
byte[] bs = b.getBytes(1, (int)size);
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(bs);
outs.flush();
rs.close();
}
else {
rs.close();
response.sendRedirect("./images/error.gif");
}
}
finally{
con.close();
}
%>
<3>把如下文件放在show.jsp的同一目录下.
index.html文件如下:
<HTML>
<HEAD>
<TITLE> 图像测试 </TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD>图像测试</TD>
</TR>
<TR>
<TD><img src="show.jsp?photo_no=2"></TD>
</TR>
</TABLE>
</BODY>
</HTML>
④ jsp如何上传图片到数据库
jsp上传图片到数据,在数据库中有一种类型就是blob存储类型,就是用于储存二进制的。在java.sql里面的PreparedStatment有个setBlob()方法存入数据库,还有ResultSet里的getBlob()就是读取,详情你可以看JDBC Blob如何使用。
在jsp里上传图片很少用上述方式存储到数据库中,一般是将图片上传到服务器项目目录文件夹中,然后数据库中保存该图片文件的地址,如/item/upload/images/我上传的图片.jpg
⑤ jsp读取数据库的图片
你数据库里存的路径是相对项目的路径还是相对磁盘的文件路径??
如果是类似于E:\images\demo.jpg这样的路径存到数据库里也不能直接显示,只能用IO将文件读到流里面在页面上输出才可以显示图片
是相对于项目的路径images/demo.jpg这样的路径楼上的答案就可以解决你的问题了。
⑥ jsp显示数据库存储目录的图片
首先,代码是不会有的了。
其次你要把图片存入数据库,数据库只存储图片的目录。这两句话本身就互斥好吧……姑且以后半句为例,讲讲思路。
你在一个文件夹中存储了图片,在数据库里应该有个表。这个表起码有ID,有文件名filename,有路径这三个字段。路径path存储的是相对路径,并且是你项目有权访问的路径。
在java程序中读取这个表的数据,将path和filename拼接成完整的相对路径+文件名的形式。在eclipse中新建jsp的时候,会自动生成获取basePath的代码。basePath是当前页面所在项目的根目录,用basePath
+
path
+
filename就可以显示出图片了
⑦ 读取保存在数据库里的图片JSP页面显示无法显示图片
我把你的代码稍微改造了下,我这边是可以显示图片的。代码如下:
数据库操作部分:
packagecom.database;
importjava.io.InputStream;
importjava.sql.*;
/**
*@作者王建明
*@创建日期13-10-7
*@创建时间下午12:32
*@版本号V1.0
*/
publicclassDataBaseUtil{
(){
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=
DriverManager.getConnection("jdbc:mysql://localhost/quickstart","root","123456");
Statementstmt=conn.createStatement();
Stringsql="selectbook_imagefromtbl_bookwhereid=1";
ResultSetrs=stmt.executeQuery(sql);
if(rs.next()){
returnrs.getBinaryStream("book_image");
}
}catch(Exceptione){
System.out.println("出现异常:"+e.getMessage());
}finally{
try{
if(conn!=null)
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
returnnull;
}
}
servlet部分:
packagecom.servlet;
importcom.database.DataBaseUtil;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
/**
*@作者王建明
*@创建日期13-10-7
*@创建时间下午12:18
*@版本号V1.0
*/
{
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doGet(request,response);
}
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
InputStreamin=DataBaseUtil.getImageStreamFromDataBase();
OutputStreamtoClient=response.getOutputStream();
response.reset();
response.setContentType("image/jpg");//或gif
intlen=10*1024*1024;
byte[]P_Buf=newbyte[len];
inti;
while((i=in.read(P_Buf))!=-1){
toClient.write(P_Buf,0,i);
}
in.close();
toClient.flush();
toClient.close();
}
}
web.xml中的servlet配置:
<servlet>
<servlet-name>ShowImage</servlet-name>
<servlet-class>com.servlet.ShowImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowImage</servlet-name>
<url-pattern>/showImage</url-pattern>
</servlet-mapping>
页面中加载图片方式:
<imgsrc="showImage"/>
希望对你有帮助O(∩_∩)O~
⑧ 如何添加图片,在JSP和数据库中
一般来说是不用将图片直接存在数据库中的,可以将图片的路径存在数据库中,然后在JSP
页面中利用<img
src="图片路径">将图片显示出来
⑨ 在JSP中怎样将图片上传到数据库中
到数据库?
你可以建一个文件夹来保存上传的图片,
然后将图片的文件名保存到数据库中。
要用的时候在根据图片的文件名到该文件夹下面去读取显示出来