attachment.java

来自「cwbbs 云网论坛源码」· Java 代码 · 共 357 行

JAVA
357
字号
package cn.js.fan.module.cms;import java.io.*;import java.sql.*;import cn.js.fan.db.*;import cn.js.fan.util.*;import cn.js.fan.web.*;import com.redmoon.forum.*;import org.apache.log4j.*;public class Attachment implements java.io.Serializable {    int id;    int docId;    String name;    String fullPath;    String diskName;    String visualPath;    public static final int TEMP_DOC_ID = -1;     String connname;    String LOAD = "SELECT doc_id, name, fullpath, diskname, visualpath, orders, page_num,downloadCount,upload_date,file_size FROM document_attach WHERE id=?";    String SAVE = "update document_attach set doc_id=?, name=?, fullpath=?, diskname=?, visualpath=?, orders=?, page_num=?,downloadCount=? WHERE id=?";    Logger logger = Logger.getLogger(Attachment.class.getName());    public Attachment() {        connname = Global.defaultDB;        if (connname.equals(""))            logger.info("Attachment:DB is empty!");    }    public Attachment(int id) {        connname = Global.defaultDB;        if (connname.equals(""))            logger.info("Attachment:DB is empty!");        this.id = id;        loadFromDb();    }    public Attachment(int orders, int docId, int pageNum) {        connname = Global.defaultDB;        if (connname.equals(""))            logger.info("Attachment:DB is empty!");        this.orders = orders;        this.docId = docId;        this.pageNum = pageNum;        loadFromDbByOrders();    }        public boolean create() {        String sql = "insert into document_attach (id,fullpath,doc_id,name,diskname,visualpath,page_num,upload_date,file_size) values (?,?,?,?,?,?,?,?,?)";        id = (int) SequenceMgr.nextID(SequenceMgr.DOCUMENT_ATTACH);        Conn conn = new Conn(connname);        boolean re = false;        try {            PreparedStatement pstmt = conn.prepareStatement(sql);            pstmt.setLong(1, id);            pstmt.setString(2, fullPath);            pstmt.setLong(3, docId);            pstmt.setString(4, name);            pstmt.setString(5, diskName);            pstmt.setString(6, visualPath);            pstmt.setInt(7, pageNum);            pstmt.setString(8, DateUtil.toLongString(new java.util.Date()));            pstmt.setLong(9, size);            re = conn.executePreUpdate() == 1 ? true : false;        } catch (SQLException e) {            Logger.getLogger(getClass()).error("create:" + e.getMessage());        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }        return re;    }    public boolean del() {        String sql = "delete from document_attach where id=?";        Conn conn = new Conn(connname);        boolean re = false;        try {            PreparedStatement pstmt = conn.prepareStatement(sql);            pstmt.setInt(1, id);            re = conn.executePreUpdate() == 1 ? true : false;            pstmt.close();                        sql = "update document_attach set orders=orders-1 where doc_id=? and page_num=? and orders>?";            pstmt = conn.prepareStatement(sql);            pstmt.setInt(1, docId);            pstmt.setInt(2, pageNum);            pstmt.setInt(3, orders);            conn.executePreUpdate();        } catch (SQLException e) {            logger.error("del:" + e.getMessage());            return false;        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }                File fl = new File(Global.realPath + visualPath + "/" + diskName);        fl.delete();        return re;    }    public boolean save() {        Conn conn = new Conn(connname);        boolean re = false;        try {            PreparedStatement pstmt = conn.prepareStatement(SAVE);            pstmt.setInt(1, docId);            pstmt.setString(2, name);            pstmt.setString(3, fullPath);            pstmt.setString(4, diskName);            pstmt.setString(5, visualPath);            pstmt.setInt(6, orders);            pstmt.setInt(7, pageNum);            pstmt.setInt(8, downloadCount);            pstmt.setInt(9, id);            re = conn.executePreUpdate() == 1 ? true : false;        } catch (SQLException e) {            logger.error("save:" + e.getMessage());        } finally {            if (conn != null) {                conn.close();                conn = null;            }            DocCacheMgr dcm = new DocCacheMgr();            dcm.refreshUpdate(docId);        }        return re;    }    public int getId() {        return this.id;    }    public void setId(int id) {        this.id = id;    }    public int getDocId() {        return this.docId;    }    public void setDocId(int di) {        this.docId = di;    }    public String getName() {        return this.name;    }    public void setName(String name) {        this.name = name;    }    public String getDiskName() {        return this.diskName;    }    public void setDiskName(String dn) {        this.diskName = dn;    }    public String getFullPath() {        return this.fullPath;    }    public void setFullPath(String f) {        this.fullPath = f;    }    public String getVisualPath() {        return this.visualPath;    }    public int getOrders() {        return orders;    }    public int getPageNum() {        return pageNum;    }    public boolean isLoaded() {        return loaded;    }    public int getDownloadCount() {        return downloadCount;    }    public java.util.Date getUploadDate() {        return uploadDate;    }    public long getSize() {        return size;    }    public void setVisualPath(String vp) {        this.visualPath = vp;    }    public void setOrders(int orders) {        this.orders = orders;    }    public void setPageNum(int pageNum) {        this.pageNum = pageNum;    }    public void setLoaded(boolean loaded) {        this.loaded = loaded;    }    public void setDownloadCount(int downloadCount) {        this.downloadCount = downloadCount;    }    public void setSize(long size) {        this.size = size;    }    public void setUploadDate(Date uploadDate) {        this.uploadDate = uploadDate;    }    public void loadFromDb() {        Conn conn = new Conn(connname);        PreparedStatement pstmt = null;        ResultSet rs = null;        try {            pstmt = conn.prepareStatement(LOAD);            pstmt.setInt(1, id);            rs = conn.executePreQuery();            if (rs != null && rs.next()) {                docId = rs.getInt(1);                name = rs.getString(2);                fullPath = rs.getString(3);                diskName = rs.getString(4);                visualPath = rs.getString(5);                orders = rs.getInt(6);                pageNum = rs.getInt(7);                downloadCount = rs.getInt(8);                uploadDate = DateUtil.parse(rs.getString(9));                size = rs.getLong(10);                loaded = true;            }        } catch (SQLException e) {            logger.error(e.getMessage());        } finally {            if (rs != null) {                try {                    rs.close();                } catch (Exception e) {}                rs = null;            }            if (conn != null) {                conn.close();                conn = null;            }        }    }    public void loadFromDbByOrders() {        Conn conn = new Conn(connname);        PreparedStatement pstmt = null;        ResultSet rs = null;        try {            String LOADBYORDERS = "SELECT id, name, fullpath, diskname, visualpath, downloadCount, upload_date, file_size FROM document_attach WHERE orders=? and doc_id=? and page_num=?";            pstmt = conn.prepareStatement(LOADBYORDERS);            pstmt.setInt(1, orders);            pstmt.setInt(2, docId);            pstmt.setInt(3, pageNum);            rs = conn.executePreQuery();            if (rs != null && rs.next()) {                id = rs.getInt(1);                name = rs.getString(2);                fullPath = rs.getString(3);                diskName = rs.getString(4);                visualPath = rs.getString(5);                downloadCount = rs.getInt(6);                uploadDate = DateUtil.parse(rs.getString(7));                size = rs.getLong(8);                loaded = true;            }        } catch (SQLException e) {            logger.error(e.getMessage());        } finally {            if (rs != null) {                try {                    rs.close();                } catch (Exception e) {}                rs = null;            }            if (conn != null) {                conn.close();                conn = null;            }        }    }    public String getFileExt() {        return StrUtil.getFileExt(getDiskName());    }    public void setUploadDate(java.util.Date uploadDate) {        this.uploadDate = uploadDate;    }    public boolean delTmpAttach() {        String sql = "delete from document_attach where id=?";        Conn conn = new Conn(connname);        boolean re = false;        try {            PreparedStatement pstmt = conn.prepareStatement(sql);            pstmt.setLong(1, id);            re = conn.executePreUpdate() == 1 ? true : false;        } catch (SQLException e) {            Logger.getLogger(getClass()).error("del:" + e.getMessage());        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }        if (re) {                        Config cfg = new Config();            String attPath = cfg.getProperty("cms.file_doc_attach");            String filepath = Global.getRealPath() + attPath + "/" +                              visualPath + "/" + diskName;            File fl = new File(filepath);            fl.delete();        }        return re;    }    private int orders = 0;    private int pageNum = 1;    private boolean loaded = false;    private int downloadCount = 0;    private java.util.Date uploadDate;    private long size = 0;}

⌨️ 快捷键说明

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