Rising Sun

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks

          Class文件如下:

          import java.io.*;
          import java.sql.*;
          import java.util.Date ;
          import oracle.sql.*;
          import javax.servlet.http.*;
          import org.apache.struts.action.*;
          import org.apache.struts.upload.*;

          public class UploadAction extends Action
          {
          ? public ActionForward execute(ActionMapping mapping,
          ?????????????????????????????? ActionForm form,
          ?????????????????????????????? HttpServletRequest request,
          ?????????????????????????????? HttpServletResponse response)
          ????? throws Exception {
          ??? if (form instanceof UploadForm) {
          ????? Date date = new Date();
          ????? System.out.println("-------------File Upload Begins-------------------") ;
          ????? UploadForm theForm = (UploadForm) form;
          ????? file://通/過struts的FormFile類來獲得上傳的文件,前臺jsp頁面對應的代碼
          ????? file://</html:file property="theFile" />
          ????? FormFile file = theForm.getTheFile();
          ?????
          ????? Connection conn = null;
          ????? PreparedStatement ps = null ;

          ????? String union_Id = "" ;
          ????? String union_Version = "" ;
          ????? union_Id = theForm.getUnion_Id() ;
          ????? union_Version = theForm.getUnion_Version() ;
          ????? file://actionpart/是數據庫表中的字段名,由于表中有多個blob字段,所以用變量來表示其名稱
          ????? String actionpart = theForm.getActionpart() ;
          ????? System.out.println("actionpart is:"+actionpart) ;
          ????? file://取/得數據庫連接,dbPool的源代碼附在后面
          ????? dbPool dbp = new dbPool();
          ????? conn = dbp.getConnection() ;

          ????? ResultSet BlobDetails = null;
          ????? Statement stmt = null;

          ????? try {
          ??????? InputStream stream = null;
          ??????? FileInputStream fstream = null;
          ??????? stream = file.getInputStream();
          ??????? System.out.println("------------uploadFileSize is : "+stream.available() +"------------") ;

          ??????? conn.setAutoCommit(false);
          ??????? stmt = conn.createStatement();
          ??????? file://先/用empty_blob()來初始化該字段
          ??????? sql = " update regunion set " + actionpart + "? = empty_blob() where? union_id= " + union_Id +" and? union_Version = "+ union_Version;
          ??????? stmt.executeUpdate(sql) ;
          ??????? conn.commit() ;
          ??????? stmt.close() ;
          ??????? stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
          ??????? sql = "select " +actionpart + " from regunion where union_id= " + union_Id +" and? union_Version = "+ union_Version + " for? update ";
          ??????? BlobDetails = stmt.executeQuery(sql);

          ??????? if (BlobDetails.next()) {
          ????????? BLOB l_mapBlob = (BLOB)BlobDetails.getBlob(1);
          ????????? OutputStream l_blobOutputStream = ((BLOB) l_mapBlob).getBinaryOutputStream();

          ????????? byte[] l_buffer = new byte[10* 1024];

          ????????? int l_nread = 0;
          ????????? while ((l_nread=stream.read(l_buffer)) != -1) // Read from file
          ??????????? {
          ??????????? l_blobOutputStream.write(l_buffer,0,l_nread); // Write to Blob
          ??????????? }

          ????????? stream.close();
          ????????? l_blobOutputStream.close ();
          ??????? }
          ??????? BlobDetails.close();
          ??????? conn.commit() ;
          ????? }
          ????? catch (FileNotFoundException fnfe) {
          ??????? fnfe.printStackTrace() ;
          ??????? return mapping.findForward("error");
          ????? }
          ????? catch (IOException ioe) {
          ??????? ioe.printStackTrace() ;
          ??????? return mapping.findForward("error");;
          ????? }
          ????? catch(SQLException ex){
          ??????? ex.printStackTrace() ;
          ??????? return mapping.findForward("error");;
          ????? }finally{
          ??????? if(conn != null){
          ????????? try{
          ??????????? stmt.close();
          ??????????? conn.close() ;
          ????????? }catch(Exception sqle){
          ??????????? sqle.printStackTrace() ;
          ????????? }
          ??????? }
          ????? }


          ????? request.setAttribute("union_Id",union_Id) ;
          ????? request.setAttribute("union_Version",union_Version) ;
          ????? System.out.println("-------------File Upload Ends-------------------") ;
          ????? return mapping.findForward("success");
          ??? }else{
          ????? return null;
          ??? }
          ? }
          }

          附:dbPool.java程序

          package com.prient.nbsc.unifylaw;
          import java.sql.*;
          import com.prient.nbsc.common.DBPOOL;
          public class dbPool {
          ? public Connection getConnection(){
          ??? try {
          ????? Connection conn = null;
          ????? Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
          ????? String bridge = "jdbc:oracle:thin:@10.6.89.2:1521:sjk";
          ????? conn = DriverManager.getConnection(bridge,"user","user") ;
          ????? return? conn;
          ??? }
          ??? catch (Exception e) {
          ????? System.out.println(e);
          ????? return null;
          ?????? }
          ? }
          }

          posted on 2006-07-13 14:39 brock 閱讀(359) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 屏山县| 吐鲁番市| 沁阳市| 招远市| 甘谷县| 应城市| 达拉特旗| 横峰县| 满城县| 施甸县| 天台县| 应城市| 琼结县| 米林县| 龙里县| 什邡市| 恩平市| 明光市| 德江县| 宣城市| 平定县| 金阳县| 广丰县| 常熟市| 梁河县| 宣城市| 吉木乃县| 利川市| 积石山| 泌阳县| 河西区| 郯城县| 临漳县| 鄄城县| 昂仁县| 靖边县| 泾源县| 东乡| 香河县| 昌图县| 松原市|