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

📄 msgmgr.java

📁 cwbbs 云网论坛源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
package com.redmoon.forum;import java.io.IOException;import java.util.*;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import cn.js.fan.util.*;import com.redmoon.forum.plugin.*;import com.redmoon.forum.plugin.base.*;import com.redmoon.kit.util.FileUpload;import org.apache.log4j.Logger;import com.redmoon.forum.plugin2.Plugin2Mgr;import com.redmoon.forum.plugin2.Plugin2Unit;import cn.js.fan.web.SkinUtil;import com.redmoon.kit.util.FileInfo;import cn.js.fan.web.Global;import java.io.File;import com.redmoon.forum.message.MessageDb;import com.redmoon.forum.person.UserPrivDb;import com.redmoon.forum.person.UserDb;import com.redmoon.forum.search.Indexer;import com.cloudwebsoft.framework.util.LogUtil;import com.cloudwebsoft.framework.db.JdbcTemplate;public class MsgMgr {        boolean debug = true;    Privilege privilege;    Logger logger = Logger.getLogger(MsgMgr.class.getName());    public FileUpload fileUpload = null;    public MsgMgr() {        privilege = new Privilege();    }    public FileUpload doUpload(ServletContext application, HttpServletRequest request) throws            ErrMsgException {        Config cfg = Config.getInstance();        int maxAttachmentSize = cfg.getIntProperty("forum.maxAttachmentSize");        int maxAllFileSize = cfg.getIntProperty("forum.maxAllFileSize");        MultiFileUpload fu = new MultiFileUpload();        String userName = privilege.getUser(request);        UserPrivDb upd = new UserPrivDb();        if (privilege.isUserLogin(request)) {                        upd = upd.getUserPrivDb(userName);                        if (upd.getInt("is_default") == 0) {                                maxAttachmentSize = upd.getInt("attach_size");            }        }        fu.setMaxAllFileSize(maxAllFileSize);         fu.setMaxFileSize(maxAttachmentSize);                                        String[] ext = StrUtil.split(cfg.getProperty("forum.ext"), ",");        if (ext!=null)            fu.setValidExtname(ext);        int ret = 0;        try {            ret = fu.doUpload(application, request);            fileUpload = fu;            if (ret!=FileUpload.RET_SUCCESS) {                throw new ErrMsgException(fu.getErrMessage(request));            }        } catch (IOException e) {            logger.error("doUpload:" + e.getMessage());            throw new ErrMsgException(e.getMessage());        }        String boardcode = StrUtil.getNullString(fu.getFieldValue("boardcode"));        if (boardcode.equals(""))            throw new ErrMsgException(LoadString(request, "err_need_board"));                if (fu.getFiles().size()>0 || fu.getAttachments().size()>0) {            if (!privilege.canUserUpload(request, boardcode)) {                if (privilege.isUserLogin(request))                    throw new ErrMsgException(SkinUtil.LoadString(request,                            "res.forum.MsgMgr", "err_upload_count_exceed") +                                              upd.getAttachTodayUploadCount());                else {                    throw new ErrMsgException(SkinUtil.LoadString(request,                            "res.forum.MsgMgr", "err_upload_priv"));                }            }        }                boolean waterMarkImg = cfg.getBooleanProperty("forum.waterMarkImg");        boolean isNeedWatermark = true;        if (cfg.getBooleanProperty("forum.waterMarkOptional"))            isNeedWatermark = StrUtil.getNullStr(fu.getFieldValue("isNeedWaterMark")).equals("1");        if (waterMarkImg && isNeedWatermark) {            Vector files = fu.getFiles();            com.redmoon.forum.ImageUtil iu = new com.redmoon.forum.ImageUtil();            iu.setRealPath(Global.getRealPath());            if (files.size() > 0) {                Iterator ir = files.iterator();                while (ir.hasNext()) {                    FileInfo fi = (FileInfo) ir.next();                    if (fi.getExt().equalsIgnoreCase("jpg") ||                        fi.getExt().equalsIgnoreCase("jpeg")) {                        iu.WaterMark(fi);                    }                }            }        }        return fu;    }    public String[] uploadImg(ServletContext application, HttpServletRequest request) throws            ErrMsgException {                        UserPrivDb upd = new UserPrivDb();        upd = upd.getUserPrivDb(privilege.getUser(request));        if (upd.getBoolean("attach_upload") && upd.getAttachTodayUploadCount()<upd.getInt("attach_day_count"))            ;        else {            throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.MsgMgr", "err_upload_count_exceed") + upd.getAttachTodayUploadCount());        }        Config cfg = Config.getInstance();        int maxAttachmentSize = cfg.getIntProperty("forum.maxAttachmentSize");        int maxAllFileSize = cfg.getIntProperty("forum.maxAllFileSize");                if (upd.getInt("is_default")==0) {                        maxAllFileSize = upd.getInt("attach_size");        }        MultiFileUpload fu = new MultiFileUpload();        fu.setMaxAllFileSize(maxAllFileSize);         fu.setMaxFileSize(maxAttachmentSize);        String[] ext = new String[] {"jpg", "gif", "png", "bmp"};        if (ext!=null)            fu.setValidExtname(ext);        int ret = 0;        try {            ret = fu.doUpload(application, request);            fileUpload = fu;            if (ret!=fu.RET_SUCCESS) {                throw new ErrMsgException(fu.getErrMessage(request));            }            if (!cn.js.fan.security.Form.isTokenValid(request, fu))                throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.MsgMgr", "err_back_refresh"));            if (fu.getFiles().size()==0)                throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.MsgMgr", "err_upload_none"));        } catch (IOException e) {            logger.error("doUpload:" + e.getMessage());            throw new ErrMsgException(e.getMessage());        }                boolean waterMarkImg = cfg.getBooleanProperty("forum.waterMarkImg");        boolean isNeedWatermark = true;        if (cfg.getBooleanProperty("forum.waterMarkOptional"))            isNeedWatermark = StrUtil.getNullStr(fu.getFieldValue("isNeedWaterMark")).equals("1");        if (waterMarkImg && isNeedWatermark) {            Vector files = fu.getFiles();            com.redmoon.forum.ImageUtil iu = new com.redmoon.forum.ImageUtil();            iu.setRealPath(Global.getRealPath());            if (files.size() > 0) {                Iterator ir = files.iterator();                if (ir.hasNext()) {                    FileInfo fi = (FileInfo) ir.next();                    if (fi.getExt().equalsIgnoreCase("jpg") ||                        fi.getExt().equalsIgnoreCase("jpeg")) {                        iu.WaterMark(fi);                    }                }            }        }        Calendar cal = Calendar.getInstance();        String year = "" + (cal.get(cal.YEAR));        String month = "" + (cal.get(cal.MONTH) + 1);        String virtualpath = year +                             "/" +                             month;        String filepath = Global.getRealPath() + Config.getInstance().getAttachmentPath() + "/" +                          virtualpath + "/";        File f = new File(filepath);        if (!f.isDirectory()) {            f.mkdirs();        }        fu.setSavePath(filepath);                 String[] re = null;        Vector v = fu.getFiles();        Iterator ir = v.iterator();        int orders = 0;        String attachmentBasePath = request.getContextPath() + "/" + Config.getInstance().getAttachmentPath() + "/";        boolean isFtpUsed = cfg.getBooleanProperty("forum.ftpUsed");        FTPUtil ftp = new FTPUtil();        if (isFtpUsed && v.size()>0) {            boolean retFtp = ftp.connect(cfg.getProperty(                    "forum.ftpServer"),                                         cfg.getIntProperty("forum.ftpPort"),                                         cfg.getProperty("forum.ftpUser"),                                         cfg.getProperty("forum.ftpPwd"), true);            if (!retFtp) {                ftp.close();                throw new ErrMsgException(ftp.getReplyMessage());            }            attachmentBasePath = cfg.getProperty("forum.ftpUrl");            if (attachmentBasePath.lastIndexOf("/")!=attachmentBasePath.length()-1)                attachmentBasePath += "/";        }        if (ir.hasNext()) {            FileInfo fi = (FileInfo) ir.next();                        String fname = FileUpload.getRandName() + "." +                           fi.getExt();            if (isFtpUsed) {                try {                    ftp.storeFile(virtualpath + "/" + fname, fi.getTmpFilePath());                } catch (IOException e) {                    LogUtil.getLog(getClass()).error("AddNew: storeFile - " +                                                     e.getMessage());                }            } else {                fi.write(fu.getSavePath(), fname);            }                        Attachment att = new Attachment();            att.setDiskName(fi.getDiskName());                        att.setMsgId(att.TEMP_MSG_ID);            att.setName(fi.getName());            att.setDiskName(fname);            att.setOrders(orders);            att.setVisualPath(virtualpath);            att.setUploadDate(new java.util.Date());            att.setSize(fi.getSize());            att.setUserName(privilege.getUser(request));            att.setExt(fi.getExt());            att.setRemote(isFtpUsed);            if (att.create()) {                re = new String[2];                re[0] = "" + att.getId();                re[1] = attachmentBasePath + att.getVisualPath() + "/" + att.getDiskName();                upd.addAttachTodayUploadCount(1);            }        }        if (isFtpUsed && v.size()>0) {            ftp.close();        }        return re;    }        public boolean AddNewWE(ServletContext application,                            HttpServletRequest request) throws            ErrMsgException {        MultiFileUpload fu = (MultiFileUpload)doUpload(application, request);        String boardcode;        boardcode = fu.getFieldValue("boardcode");        if (boardcode == null || boardcode.trim().equals(""))            throw new ErrMsgException(LoadString(request, "err_need_board"));        if (!privilege.canAddNew(request, boardcode, fu))            throw new ErrMsgException(SkinUtil.LoadString(request, SkinUtil.PVG_INVALID));                Leaf lf = new Leaf();        lf = lf.getLeaf(boardcode);        if (lf==null || !lf.isLoaded())            throw new ErrMsgException(LoadString(request, "err_board_lost"));                 String pluginCode = StrUtil.getNullString(fu.getFieldValue("pluginCode"));        boolean isPluginValid = false;        PluginMgr pm = new PluginMgr();        Vector vplugin = pm.getAllPluginUnitOfBoard(boardcode);        if (vplugin.size() > 0) {            Iterator irplugin = vplugin.iterator();            while (irplugin.hasNext()) {                PluginUnit pu = (PluginUnit) irplugin.next();                IPluginPrivilege ipp = pu.getPrivilege();                                if (!ipp.canAddNew(request, boardcode, fu)) {                    String str = LoadString(request, "err_pvg_plugin");                    str = str.replaceFirst("\\$p", pu.getName(request));                    throw new ErrMsgException(str);                }                                if (!pluginCode.equals(""))                    if (pu.getCode().equals(pluginCode))                        isPluginValid = true;            }        }                if (!pluginCode.equals("") && !isPluginValid) {            throw new ErrMsgException(LoadString(request, "err_plugin_invalid"));        }        String name;        if (privilege.isUserLogin(request))            name = privilege.getUser(request);         else            name = "";        MsgDb md = new MsgDb();        boolean re = false;        try {            re = md.AddNewWE(application, request, name, fu);        } catch (ErrMsgException e) {            throw e;        }        if (re) {            id = md.getId();                        String plugin2Code = StrUtil.getNullString(fu.getFieldValue("plugin2Code")).trim();            if (!plugin2Code.equals("")) {                Plugin2Mgr p2m = new Plugin2Mgr();                Plugin2Unit p2u = p2m.getPlugin2Unit(plugin2Code);                if (p2u!=null) {

⌨️ 快捷键说明

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