通过Struts实现图片上传,并且将该图片保存到ORACLE数据库里,要求保存该图片的二进制数据,不是保存图片路径。
 感谢大家了...

解决方案 »

  1.   

    我用bolb存的,但是无法读取呢
    读不出来啊 
      

  2.   

    强烈建议你看一下
    http://www.life369.cn/bbs/dispbbs.asp?boardid=17&id=107&star=1&page=1
      

  3.   

    上传图片:
    package com.imti.struts.dao;import java.sql.ResultSet;
    import java.sql.SQLException;import javax.naming.NamingException;import org.apache.struts.upload.FormFile;import com.imti.struts.form.UploadForm;
    import com.imti.struts.util.Dbutil;public class Dao 
    {
    public int ifSuccess(UploadForm form) throws NamingException, SQLException
    {
    FormFile file=form.getFile();
    Dbutil db=new Dbutil();
    String sql="insert into photoform values(message_s.nextval,EMPTY_BLOB())";
    int count=db.UpdateSql(sql);
    return count;

    }}
      

  4.   

    读取:
    <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%>
    <%@ page import="com.imti.struts.util.Dbutil" %>
    <%@page import=" org.apache.struts.upload.FormFile"  %>
    <%@ page import="com.imti.struts.dao.*"  %>
    <%@ page import=" com.imti.struts.form.UploadForm" %>
    <%@ page import="java.io.BufferedOutputStream" %>
    <%@ page import= "java.io.BufferedInputStream" %>
    <%@ page import="java.io.ByteArrayInputStream" %>
    <html>
    <%
      UploadForm   file=new UploadForm();
      FormFile phoneForm=file.getFile();
    Dbutil db=new Dbutil();String sql="select * from photoform";
    System.out.println(sql);
    ResultSet rs=db.QuerySql(sql);
    System.out.println("2222222222");
    while(rs.next())
    {
    System.out.println("1111111111");
       oracle.sql.BLOB bolophoto=(oracle.sql.BLOB)rs.getBlob(1);
       System.out.println("122222222222222222222");
       byte[] bophoto=phoneForm.getFileData();
     BufferedOutputStream photoOut=new BufferedOutputStream(bolophoto.getBinaryOutputStream());
                             BufferedInputStream photoIn = new BufferedInputStream(new ByteArrayInputStream(bophoto));
                             int c;
                             while ((c = photoIn.read()) != -1) {
                                 photoOut.write(c);
                             }
                             photoIn.close();
                             photoOut.close();
    } %>
    </html>