我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的   
  只要大家将连接数据库的参数改一下就可以了。   
  SQL>create  table  image(id  int,content  varchar(200),image  blob);   
  如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。   
  testimage.html文件内容如下:   
  <HTML>   
  <HEAD>   
  <TITLE>Image  File  </TITLE>   
  <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312">   
  </HEAD>   
  <FORM  METHOD=POST  ACTION="testimage.jsp">   
  <INPUT  TYPE="text"  NAME="content"><BR>   
  <INPUT  TYPE="file"  NAME="image"><BR>   
  <INPUT  TYPE="submit"></FORM>   
  <BODY>   
  </BODY>   
  </HTML>   
jdbc连接oracle   
  我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:   
  <%@  page  contentType="text/html;charset=gb2312"%>   
  <%@  page  import="java.sql.*"  %>   
  <%@  page  import="java.util.*"%>   
  <%@  page  import="*"%>   
  <%@  page  import="java.io.*"%>   
  <html>   
  <body>   
  <%Class.forName("sql.Driver").newInstance();   
  String  url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=8859_1";   
  //其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改   
  Connection  conn=  Connection(url);   
  String  Parameter("content");   
  String  Parameter("image");   
  FileInputStream  str=new  FileInputStream(filename);   
  String  sql="insert  into  test(id,content,image)  values(1,?,?)";   
  PreparedStatement  prepareStatement(sql);   
  pstmt.setString(1,content);   
  pstmt.setBinaryStream(2,str,str.available());   
  ute();   
  out.println("Success,You  Have  Insert  an  Image  Successfully");   
  %>   
   
  下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:   
  <%@  page  contentType="text/html;charset=gb2312"%>   
  <%@  page  import="java.sql.*"  %>   
  <%@  page  import="java.util.*"%>   
  <%@  page  import="*"%>   
  <%@  page  import="java.io.*"%>   
  <html>   
  <body>   
  <%Class.forName("sql.Driver").newInstance();   
  String  url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=8859_1";   
  //其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改   
  Connection  conn=  Connection(url);   
  String  sql  =  "select  image  from  test  where  id=1";   
  Statement  stmt=null;   
  ResultSet  rs=null;   
  try{   
  ateStatement();   
  uteQuery(sql);   
  }catch(SQLException  e){}   
  try  {   
  ())  {   
  res.setContentType("image/jpeg");   
  ServletOutputStream  sout  =  OutputStream();   
  InputStream  in  =  rs.getBinaryStream(1);   
  byte  b[]  =  new  byte[0x7a120];   
  for(int  i  =  in.read(b);  i  !=  -1;)   
  {   
  sout.write(b);   
  in.read(b);   
  }   
  sout.flush();   
  sout.close();   
  }   
  }   
  catch(Exception  e){System.out.println(e);}   
  %>   
  </body>   
  </html>   
  你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。怎么样,用jsp来试试。   
  这种方法把图片写到数据库中会使数据库在短时间内容量飞涨,会影响性能的,另外一种做法将图片存上传到服务器上,   
  在数据库里只存放图片的路径,这是一个很好的方法。我建议大家采取后面一种方法。
jsp上传图片到Oracle数据库   
  第一步:建立数据库   
  create  table  test_img(id  number(4),name  varchar(20),pic  long  raw);   
   
  第二步:(NewImg.html)   
   
  <html><head><title>添加图片</title></head>   
  <body>   
  添加图片<br/>   
  <form  method="post"  action="insertNews.jsp">   
  图像ID:<input  name="id"  size="10">   
  <br/>   
  选择图像:<input  type="file"  name="image">   
  <br/>   
  <input  type="submit"  value="上传"  name="submit"  size="25">   
  <input  type="reset"  value="清除"  name="clear"  size="25">   
  <br/>   
  </form>   
  </body></html>   
   
  第三步:插入数据库(InsertImg.jsp)   
   
  <%@  page  language="java"%>   
  <%@  page  contentType="text/html;charset=gb2312"  %>   
  <%@  page  import="java.util.*"  %>   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。