jsp读取数据库的图片
1. jsp读取数据库的图片
你数据库里存的路径是相对项目的路径还是相对磁盘的文件路径??
如果是类似于E:\images\demo.jpg这样的路径存到数据库里也不能直接显示,只能用IO将文件读到流里面在页面上输出才可以显示图片
是相对于项目的路径images/demo.jpg这样的路径楼上的答案就可以解决你的问题了。
2. jsp页面从数据库中取图片
把图片图片放到一个文件夹里如images下有1.jpeg
查询数据库得到数据1.jpeg
将查询到的数据和图片地址进行拼接 ……/images/<%=值%>
3. jsp显示数据库存储目录的图片
首先,代码是不会有的了。
其次你要把图片存入数据库,数据库只存储图片的目录。这两句话本身就互斥好吧……姑且以后半句为例,讲讲思路。
你在一个文件夹中存储了图片,在数据库里应该有个表。这个表起码有ID,有文件名filename,有路径这三个字段。路径path存储的是相对路径,并且是你项目有权访问的路径。
在java程序中读取这个表的数据,将path和filename拼接成完整的相对路径+文件名的形式。在eclipse中新建jsp的时候,会自动生成获取basePath的代码。basePath是当前页面所在项目的根目录,用basePath
+
path
+
filename就可以显示出图片了
4. 如何用JSP从sql server数据库中读取图片并显示在网页上
你可以把图片的路径作为参数放在数据库的某一个字段中,需要用时提取出来即可.
例如:
"image/pic1.jpg" 这是一个相对路径,你把这个字符串存入数据库后,需要用时只需从数据库提取出来就行,
<img src="
<%
String str=select * from 表名 where 条件;
ResultSet rs = null;
Statement stmt = conn.createStatement();
rs=stmt.executeQuery(str);
str=rs.getString("字段名");
out.print(str);
%>">
5. 如何读取JSP页面的图片路径存在数据库中
你把输入yu的
字符串
拿到后,把它节下来,把相应
路径
放到数据库里面,如果是要显示出来的话,要看看你的、
页面
相对于那个放在数据库里的路径做相应的操作,把路径拼出来就行了,这个我做过了,很成功
6. 怎么用jsp从mysql数据库中提取图片
1.去文件名
也就是你的图片实际上是存在你的项目中的
读的只是你的文件名加上路径就行了,
2.添加图片的时候,以IO的形式,把图片真真读到数据库,取的时候,取出来,进行一次转换,显示图片。
我知道的就是这两种思路
希望对你有用!
7. 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.通过这个输出流把字节数组的字节流写出
希望对你有所帮助哈
8. 读取保存在数据库里的图片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~
9. 真是怪事,jsp中从数据库中显示图片的问题
代码不全,也就不能仔细说了,就事论事吧
1.你要注意,数据库里存的图片的路径是绝对路径还是相对路径,如果测试阶段总是图片出问题,先暂时换成绝对路径,测试通过说明代码没问题了,再换成相对路径。
2.如果采用相对路径的话,推荐加上basepath设置,以下来自myEclipse:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
这样的话,路径就都有了统一的参照点,就不容易出问题了。
3.你的代码我没去试,不过我的图片显示一般是通过<img/>标签,毕竟有专门给的,还去写麻烦的干啥,而且写js的时候也方便。
4.搜狗浏览器有两个内核,一个IE,另一个忘记了,没怎么用过。IE内核对好多的东西是支持很差(但。。至少图片显示不会有问题的。。。。不用说,你冲着路径方向找吧!),开发起来让人反胃,但奈何人家客户群大,将就吧,没办法。
10. jsp从数据库中读取图片显示不出来
/SkyShop/images/brand/2010/02/09/09/4599577f-7fca-4163-a752-24a3e331ea39.jpg
像一楼说的是正解,不行的原因可能是根的位置问题,自己对着检查一下。
另外你这个路径太长。。太不好测试了,先弄个简单点的。
你右键点图片,属性的地址应该是
http://localhost:8080/SkyShop/images/brand/2010/02/09/09/4599577f-7fca-4163-a752-24a3e331ea39.jpg
这个才是你的服务器上图片的地址。E:的是计算机的真实路径,和服务器上的绝对路径,相对路径不是一回事。服务器启动后,只能访问当前服务器路径之内的文件,而windows下打开html文件不受此限制,所以不能用计算机的路径。
保存到tomcat中就是保存到项目中了,如果你希望保存到源代码中,可以去改tomcat的server.xml配置文件,
<Context path="/" docBase="D:\workspace\SkyShop\ROOT"
debug="0" privileged="true">
</Context>
并删除webapps下的内容。
或者以流的方式将写到图片写到数据库中。
最后建议你去看看关于相对路径的文章,篇幅有限,说的还是不太清楚。