⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directoryaction.java

📁 jdo开发实例,一个功能全面的oa系统
💻 JAVA
字号:
package com.gzrealmap.oa.actions;

/**
 * <p>Title: 基本类库</p>
 * <p>Description: 基本类库</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: 广州瑞图(gzrealmap.com)</p>
 * @author charlse
 * @version 1.0
 */
import javax.servlet.http.*;
import javax.servlet.*;
import java.sql.*;
import com.gzrealmap.lib.webupload.WebUpload;
import com.gzrealmap.lib.util.*;
import com.gzrealmap.lib.log.*;
import java.util.*;
import org.apache.commons.fileupload.*;
import com.gzrealmap.archive.actions.*;
public class DirectoryAction {
  private DirectoryAction() {
  }

  private static Log log = Log.getInstance(DirectoryAction.class);
  public static void downloadFile(HttpServletRequest request,
                                  HttpServletResponse response) throws
      Exception {
    String FileID = request.getParameter("FileID");
    String FileVersion = request.getParameter("FileVersion");
    if (FileVersion != null) {
      FileVersion = " AND FileVersion =" + FileVersion;
    }
    else {
      FileVersion = " ";
    }

    com.gzrealmap.lib.jdbc.JDBCUtil db = com.gzrealmap.lib.jdbc.JDBCUtil.
        getInstance();
    db.connect();
    String sql = "SELECT * FROM DirectoryFile WHERE  FileID =" + FileID +
        FileVersion +
        " ORDER BY FileVersion DESC";
//log.info(sql);
    PreparedStatement pst = db.getConnection().prepareStatement(sql);
    ResultSet rs = pst.executeQuery();
    rs.next();
    String filename = rs.getString("FileName");
    String filetype = rs.getString("FileType");
    /**文件形式输出在服务器上**/
    //java.io.FileOutputStream o = new java.io.FileOutputStream(new java.io.File("c://Result"));
    byte[] b = rs.getBytes("FileBody");
    /*
     ** 可能是rs.getBytes()返回时增加了结束符之类的符号,截去
     */
    byte[] a = new byte[b.length];
    System.arraycopy(b, 0, a, 0, b.length);
    if (filetype != null) {
      filetype = filetype.trim();
      response.setContentType(filetype);
    }
    else {
      response.setContentType("APPLICATION/OCTET-STREAM");
    }
    response.setHeader("Content-Disposition",
                       "attachment; filename=\"" + filename + "\"");
    /* if Tomcat 4.1 update to new String (filename.getBytes("gb2312"),"ISO8859-1") */
    ServletOutputStream o = response.getOutputStream();
    o.write(a);
    o.flush();
    o.close();
    db.disconnect();
  }

  public static void uploadFile(HttpServletRequest request, String userName) {
    try {
      upload(request, userName);
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  public static void upload(HttpServletRequest request, String userName) throws
      Exception {
    ActionsUtil.processRequest(request);
    com.gzrealmap.lib.jdbc.JDBCUtil theJDBCUtil = com.gzrealmap.lib.jdbc.
        JDBCUtil.
        getInstance();
    //传参部分
    String theMenuID = null;
    String theFileID = null;
    theMenuID = request.getParameter("MenuID");
    theFileID = request.getParameter("FileID");
    // Variables
    int count = 0;
    int FileID = 0;
    int MenuID = 0;
    //用于版本的历史的记录;
    int FileVersion = 0;
    String FileAction = "";
    WebUpload upload = WebUpload.getInstance(request);
    //记录时间
    count = upload.getFileCount();
    String ArchiveNum = upload.getFieldValue("ArchiveNum");
    String ArchiveDate = upload.getFieldValue("ArchiveDate");
    String FileKey = upload.getFieldValue("FileKey");
    String ArchiveFrom = upload.getFieldValue("ArchiveFrom");
    String Charger = upload.getFieldValue("Charger");
    String FileRemark = upload.getFieldValue("FileRemark");
    String SerialNumber = upload.getFieldValue("SerialNumber");
//    ArchiveNum = ActionUtils.iso2gbkNoNull(ArchiveNum);
//    ArchiveDate = ActionUtils.iso2gbkNoNull(ArchiveDate);
//    FileKey = ActionUtils.iso2gbkNoNull(FileKey);
//    ArchiveFrom = ActionUtils.iso2gbkNoNull(ArchiveFrom);
//    Charger = ActionUtils.iso2gbkNoNull(Charger);
//    FileRemark = ActionUtils.iso2gbkNoNull(FileRemark);
//    SerialNumber = ActionUtils.iso2gbkNoNull(SerialNumber);
    ResultSet rs;
    //连接数据库
    try {
      theJDBCUtil.connect();
      theJDBCUtil.setAutoCommit(false);
      if (theFileID == null) {
        String sql1 = "SELECT * FROM DirectoryFile order by FileID";
        //连接result,这里是为了找到一个FileID
        rs = theJDBCUtil.queryforUpdate(sql1);
        if (rs.last()) {
          FileID = rs.getInt("FileID") + 1;
        }
        else {
          FileID = 1;
        }
        //关闭result
        rs.close();
        FileVersion = 0;
        FileAction = "创建";
        if (theMenuID != null) {
          MenuID = Integer.valueOf(theMenuID).intValue();
        }
      }
      else { //这里是创建新的Version号
        FileID = Integer.valueOf(theFileID).intValue();
        String sql1 = "SELECT * FROM DirectoryFile  where FileID =" + theFileID +
            " order by FileVersion DESC";
        rs = theJDBCUtil.queryforUpdate(sql1);
        if (rs.next()) {
          FileVersion = rs.getInt("FileVersion") + 1;
          MenuID = rs.getInt("MenuID");
        }
        else {
          FileVersion = 1;
          MenuID = 1;
        }
        rs.close();
        FileAction = "覆盖";
      }
      String sql = "SELECT * FROM DirectoryFile where 1=2"; //数据库操作
      rs = theJDBCUtil.queryforUpdate(sql);
      Enumeration enum = upload.getFileItems();
      if (enum.hasMoreElements()) {
        FileItem item = (FileItem) enum.nextElement();
        if (item.getSize() > 0) {
          String filename = item.getName();
          filename = FileUtils.getFileName(filename);
          String filetype = item.getContentType();
          long filesize = item.getSize();
          byte[] filebody = item.get();
          //数据库操作从这里开始。
          rs.moveToInsertRow(); //增加数据记录
          rs.updateInt("FileID", FileID);
          rs.updateInt("FileVersion", FileVersion);
          rs.updateInt("MenuID", MenuID);
          rs.updateString("UserName", userName);
          rs.updateString("FileName", filename);
          rs.updateLong("FileSize", filesize);
          rs.updateTimestamp("UploadTime",
                             new Timestamp(new java.util.Date().getTime()));
          rs.updateString("FileType", filetype);
          rs.updateBytes("FileBody", filebody);
          rs.updateString("FileRemark", FileRemark);
          rs.updateString("FileAction", FileAction);
          rs.updateString("ArchiveNum", ArchiveNum);
          rs.updateString("ArchiveDate", ArchiveDate);
          rs.updateString("FileKey", FileKey);
          rs.updateString("ArchiveFrom", ArchiveFrom);
          rs.updateString("Charger", Charger);
          rs.updateString("SerialNumber", SerialNumber);
          rs.insertRow();
          rs.moveToCurrentRow();
        }
      }
      theJDBCUtil.commit();
    }
    catch (Exception ex) {
      log.error(ex);
      theJDBCUtil.rollback();
    }
    theJDBCUtil.connect();

  }

  public static void main(String[] args) throws Exception {
    sqlTest();
  }

  /**
   * 用于测试数据库是否正常
   */
  private static void sqlTest() throws Exception {
    com.gzrealmap.lib.jdbc.JDBCUtil filedb = com.gzrealmap.lib.jdbc.JDBCUtil.
        getInstance();
    try {
      filedb.connect();
      Connection conn = filedb.getConnection();
      filedb.setAutoCommit(false);
      String sql = "SELECT * FROM DirectoryFile "; //数据库操作

      Statement stmt = conn.createStatement(
          ResultSet.TYPE_SCROLL_INSENSITIVE,
          ResultSet.CONCUR_UPDATABLE);
      ResultSet rs = stmt.executeQuery(sql);
      rs.moveToInsertRow(); // moves cursor to the insert row
      rs.updateString("FileAction", "test");
      rs.insertRow();
      rs.moveToCurrentRow();

      conn.commit();
    }
    catch (Exception ex) {
      ex.printStackTrace();
      filedb.rollback();
    }
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -