我怎么用jsp技术将图片存到数据库中去呀?? 10
我用的是microsoftsqlserver2000数据库,最近搞一个项目,需要把照片存到数据库中,可本人java不是很好,请达人们帮帮忙啦!谢谢!!!!!!!...
我用的是microsoft sqlserver 2000数据库,最近搞一个项目,需要把照片存到数据库中,可本人java不是很好,请达人们帮帮忙啦!
谢谢!!!!!!! 展开
谢谢!!!!!!! 展开
4个回答
展开全部
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%@ page import = "database_connection.sun_wap_refresh_conn" %>
<jsp:useBean id="myconn1" class="database_connection.sun_wap_refresh_conn" scope="session"/><jsp:setProperty name="myconn1" property="*"/>
<%//上一行的 jsp:useBean id="myconn11" id 不能有重复
myconn1.getConn();
CallableStatement cstmt=null;
Statement stmt=myconn1.conn.createStatement();
String url="";
String flag="";
String procedure="";
String id="";
url=request.getParameter("url");
flag=request.getParameter("flag");
id=request.getParameter("id");
ResultSet rs=null;
if(flag!=null){
if(flag.compareTo("add")==0){
BufferedInputStream data;
BufferedInputStream is;
int FormSize;
byte[] bb;
byte t;
String image="";
data=new BufferedInputStream(request.getInputStream());
FormSize=request.getContentLength();
int i=0,start1=0,start2=0,_start1=0,_start2=0;
String temp="";
String _temp="";
String boundary="";
is=new BufferedInputStream(data);
bb=new byte[FormSize];
while (i<FormSize)
{
t=(byte)is.read();
bb[i]=t;
i++;
}
is.close();
temp=new String(bb,"ISO8859_1");
_temp=temp;
_start1=_temp.indexOf("boundary=");
_temp=_temp.substring(_start1+9);
_start2=_temp.indexOf("\r\n");
boundary=_temp.substring(0,_start2);
_start1=_temp.indexOf(boundary);
_temp=_temp.substring(_start1+boundary.length());
_start1=_temp.indexOf(boundary);
image=_temp.substring(0,_start1);
_temp=_temp.substring(_start1+boundary.length());
_start1=image.indexOf("\r\n\r\n");
_start2=image.lastIndexOf("\r\n");
image=image.substring(_start1+4,_start2);
//out.println("username:"+username+"<br>alt_name:"+alt_name+"<br>level:"+level+"<br>image:"+image);
procedure="{call sun_insert_ad_pic_image(?,?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setString(1,url);
cstmt.setBytes(2,image.getBytes("ISO8859_1"));
cstmt.executeUpdate();
}
if(flag.compareTo("del")==0){
procedure="{call sun_delete_ad_pic_image(?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setInt(1,Integer.parseInt(id));
cstmt.executeUpdate();
}
}
procedure="{call sun_select_ad_pic_image(?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setString(1,url);
rs=cstmt.executeQuery();
%>
<script language="javascript">
function del(id){
location.replace("edit_keyword_pic.jsp?flag=del&url=<%=url%>&id="+id);
}
</script>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#B6EF07">
<tr>
<td width="20%" bgcolor="#FFFFFF">ID</td>
<td width="60%" bgcolor="#FFFFFF">图片</td>
<td width="20%" bgcolor="#FFFFFF">操作</td>
</tr>
<%while(rs.next()){
String _id=rs.getString("id");
%>
<tr>
<td width="20%" bgcolor="#FFFFFF"><%=_id%></td>
<td width="60%" bgcolor="#FFFFFF"><img src="wc1.jsp?id=<%=_id%>"></td>
<td width="20%" bgcolor="#FFFFFF"><input type="button" onclick="del('<%=_id%>')" value="删除"></td>
</tr>
<%}%>
</table>
<form name="form1" action="edit_keyword_pic.jsp?flag=add&url=<%=url%>" method="post" enctype="multipart/form-data">
<input type=file name="image"><input type="submit" value="上传">
</form>
<%@ page import="java.sql.*"%>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%@ page import = "database_connection.sun_wap_refresh_conn" %>
<jsp:useBean id="myconn1" class="database_connection.sun_wap_refresh_conn" scope="session"/><jsp:setProperty name="myconn1" property="*"/>
<%//上一行的 jsp:useBean id="myconn11" id 不能有重复
myconn1.getConn();
CallableStatement cstmt=null;
Statement stmt=myconn1.conn.createStatement();
String url="";
String flag="";
String procedure="";
String id="";
url=request.getParameter("url");
flag=request.getParameter("flag");
id=request.getParameter("id");
ResultSet rs=null;
if(flag!=null){
if(flag.compareTo("add")==0){
BufferedInputStream data;
BufferedInputStream is;
int FormSize;
byte[] bb;
byte t;
String image="";
data=new BufferedInputStream(request.getInputStream());
FormSize=request.getContentLength();
int i=0,start1=0,start2=0,_start1=0,_start2=0;
String temp="";
String _temp="";
String boundary="";
is=new BufferedInputStream(data);
bb=new byte[FormSize];
while (i<FormSize)
{
t=(byte)is.read();
bb[i]=t;
i++;
}
is.close();
temp=new String(bb,"ISO8859_1");
_temp=temp;
_start1=_temp.indexOf("boundary=");
_temp=_temp.substring(_start1+9);
_start2=_temp.indexOf("\r\n");
boundary=_temp.substring(0,_start2);
_start1=_temp.indexOf(boundary);
_temp=_temp.substring(_start1+boundary.length());
_start1=_temp.indexOf(boundary);
image=_temp.substring(0,_start1);
_temp=_temp.substring(_start1+boundary.length());
_start1=image.indexOf("\r\n\r\n");
_start2=image.lastIndexOf("\r\n");
image=image.substring(_start1+4,_start2);
//out.println("username:"+username+"<br>alt_name:"+alt_name+"<br>level:"+level+"<br>image:"+image);
procedure="{call sun_insert_ad_pic_image(?,?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setString(1,url);
cstmt.setBytes(2,image.getBytes("ISO8859_1"));
cstmt.executeUpdate();
}
if(flag.compareTo("del")==0){
procedure="{call sun_delete_ad_pic_image(?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setInt(1,Integer.parseInt(id));
cstmt.executeUpdate();
}
}
procedure="{call sun_select_ad_pic_image(?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setString(1,url);
rs=cstmt.executeQuery();
%>
<script language="javascript">
function del(id){
location.replace("edit_keyword_pic.jsp?flag=del&url=<%=url%>&id="+id);
}
</script>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#B6EF07">
<tr>
<td width="20%" bgcolor="#FFFFFF">ID</td>
<td width="60%" bgcolor="#FFFFFF">图片</td>
<td width="20%" bgcolor="#FFFFFF">操作</td>
</tr>
<%while(rs.next()){
String _id=rs.getString("id");
%>
<tr>
<td width="20%" bgcolor="#FFFFFF"><%=_id%></td>
<td width="60%" bgcolor="#FFFFFF"><img src="wc1.jsp?id=<%=_id%>"></td>
<td width="20%" bgcolor="#FFFFFF"><input type="button" onclick="del('<%=_id%>')" value="删除"></td>
</tr>
<%}%>
</table>
<form name="form1" action="edit_keyword_pic.jsp?flag=add&url=<%=url%>" method="post" enctype="multipart/form-data">
<input type=file name="image"><input type="submit" value="上传">
</form>
展开全部
将图片存放在数据库里有两种方法:
第一: 就是将图片文件所在的物理地址以字符串的形式保存在你的数据库中,记得这里的物理地址一定在是文件的相对路径(及项目的路径),因为你的项目是可以放在任何一个盘里的。
第二:将你的图片以二进制的格式存放在你的数据库里,这种方法有它的优缺点,优点就是将图片保存后就可以删除,而缺点就是你保存在数据库的文件数据量大,数据库的负担也就重,所以我们不怎么采用这种方法。
建议你使用方法一。你用代码获得图片的相对路径。
第一: 就是将图片文件所在的物理地址以字符串的形式保存在你的数据库中,记得这里的物理地址一定在是文件的相对路径(及项目的路径),因为你的项目是可以放在任何一个盘里的。
第二:将你的图片以二进制的格式存放在你的数据库里,这种方法有它的优缺点,优点就是将图片保存后就可以删除,而缺点就是你保存在数据库的文件数据量大,数据库的负担也就重,所以我们不怎么采用这种方法。
建议你使用方法一。你用代码获得图片的相对路径。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库里面存照片的相对路径不就可以了。不知道2000能不能直接存,有的数据库确实可以直接存照片。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库里面存照片的相对路径不就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询