解决方案 »

  1.   

    //upload_jspSmart.jsp<%@ include file = "../../backgeneral.jsp"%>
    <%@ page language="java" import="java.util.*,java.sql.*,java.io.*"%>
    <%@ page language="java" import="com.jspsmart.upload.*"%>
    <%@ page language="java" import="com.ges.hbgov.*"%>
    <jsp:useBean id="userInfo" scope="session" class="com.ges.hbgov.UserInfo"/>
    <jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
    <%
    //System.out.println("page=" + (String)session.getAttribute("SYS_USER_ID"));
    if(!userInfo.Request(request)){
    %>
    <script language=javascript>
     function relogin() {
      this.parent.location.href="../../login.jsp";
     }
     relogin();
    </script>
    <%
    }
    %><%try{
    //取session 用户oid
        int pid = userInfo.getUserId();
        String sys_user_id = String.valueOf(pid);
    //取init配置文件的参数值
     String sitePhysicalPath = (String)init.getObject("SitePhysicalPath");
     String saveDir  = (String)init.getObject("InfoUploadDir");
     String tempDir  = (String)init.getObject("InfoUploadDir");
     String fileMemo = "";    //文件说明
     String fileName = null;  //存储到数据库的文件名
     String saveName = null;  //存储到本地的文件名
     String filePath = null;  //存储到数据库的文件路径
     String savePath = null;  //存储到本地的文件路径
     long   fileSize = 0;     //文件大小
     int maxPostSize = -1;    
     int dinfo_upload_id = -1;
    %>
    <%
     //初始化
     mySmartUpload.initialize(pageContext);
     //上载文件
        mySmartUpload.upload();
     //循环取得所有上载文件
        for(int i=0; i<mySmartUpload.getFiles().getCount(); i++)
     {
      //取得上载文件
      com.jspsmart.upload.File file = mySmartUpload.getFiles().getFile(i);
      if(!file.isMissing())
      {
       fileName = file.getFileName();
       //取得文件扩展名file.getFileExt()
       try{
        saveName = fileName.substring(fileName.lastIndexOf("."));
     }catch(Exception e){
        saveName = "";
       }
       //取得文件大小
       fileSize = file.getSize();
       //存储路径
       String sql_id = " SELECT S_INFO_UPLOAD.nextval as seqid FROM dual ";
       try{
        Statement stmt = con.createStatement();
        ResultSet rst = stmt.executeQuery(sql_id);
        while(rst.next())
        {
         dinfo_upload_id = rst.getInt("seqid");
        }
       }catch(SQLException sqle){
        return;
       }filePath = sitePhysicalPath + saveDir + Integer.toString(dinfo_upload_id) + saveName;
       savePath = saveDir + Integer.toString(dinfo_upload_id) + saveName;
       //存储文件到本地
       file.saveAs(filePath);
       //存储文件到数据库
       switch(i)
       {
        case 0: fileMemo = (String)mySmartUpload.getRequest().getParameter("memo1"); break;
        case 1: fileMemo = (String)mySmartUpload.getRequest().getParameter("memo2"); break;
                    case 2: fileMemo = (String)mySmartUpload.getRequest().getParameter("memo3"); break;
        case 3: fileMemo = (String)mySmartUpload.getRequest().getParameter("memo4"); break;
        case 4: fileMemo = (String)mySmartUpload.getRequest().getParameter("memo5"); break;
        default: fileMemo = "";
       }      String sql = " INSERT INTO info_upload (info_upload_id,sys_user_id,file_size,file_path,utime,deleted) "
                  + " VALUES( " + Integer.toString(dinfo_upload_id) + "," + sys_user_id + "," + fileSize + ",'" + savePath + "', SYSDATE , 0 )" ;
       sqlcmd cmd = new sqlcmd(con,sql);
                //System.out.println(sql);
       java.sql.PreparedStatement pstmt = null;
       java.sql.Statement stmt = null;
       //fileName = fileName.substring(0, fileName.indexOf("."));
       String sql_cn = " UPDATE info_upload SET file_name=?,file_memo=? WHERE info_upload_id=? ";
       java.io.ByteArrayInputStream bais_name = new java.io.ByteArrayInputStream(fileName.getBytes("ISO-8859-1"));
       java.io.InputStreamReader isr_name = new java.io.InputStreamReader((InputStream)bais_name,"GBK");
      java.io.ByteArrayInputStream bais_memo = new java.io.ByteArrayInputStream(fileMemo.getBytes("GBK"));
       java.io.InputStreamReader isr_memo = new java.io.InputStreamReader((InputStream)bais_memo,"GBK");
          try{
        stmt = con.createStatement();
        stmt.getConnection().setAutoCommit(false);    pstmt = con.prepareStatement(sql_cn);
        pstmt.setCharacterStream(1, isr_name, fileName.length());
        pstmt.setCharacterStream(2, isr_memo, fileMemo.length());
        pstmt.setInt(3, dinfo_upload_id);
      pstmt.execute();
        stmt.executeUpdate("COMMIT");
     }catch(Exception exce){
        System.out.println(exce);
        stmt.executeUpdate("ROLLBACK");
       }
      }
     }
    }catch(Exception e){
    }
    response.sendRedirect("list.jsp");
    %>