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

📄 forumuploadddxc.java

📁 源码/软件简介: 云网论坛1.1RC国际版是采用JSP开发的集论坛、CMS(网站内容管理系统)、博客、聊天室、商城、交友、语音灌水等于一体的门户式社区。拥有CWBBS ( Cloud Web BBS
💻 JAVA
字号:
package com.redmoon.forum;

import cn.js.fan.util.ErrMsgException;
import com.redmoon.kit.util.UploadDdxc;
import com.redmoon.kit.util.FileUpload;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletContext;
import com.redmoon.forum.person.UserDb;
import com.redmoon.kit.util.UploadFileInfo;
import java.io.File;
import cn.js.fan.web.SkinUtil;

/**
 * <p>Title: 支持断点续传</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ForumUploadDdxc extends UploadDdxc {

    public ForumUploadDdxc() {
        maxFileSize = 1024 * 10; // 默认为10M
    }

    public String receive(ServletContext application,
                          HttpServletRequest request) throws ErrMsgException {
        return super.receive(application, request);
    }

    public String ReceiveUploadFileHeader(HttpServletRequest request, FileUpload fu) throws ErrMsgException {
        // 检查磁盘空间是否允许写Attachment
        Privilege privilege = new Privilege();
        if (!privilege.canUploadAttachment(request)) {
            UserDb ud = new UserDb();
            ud = ud.getUser(privilege.getUser(request));
            String str = SkinUtil.LoadString(request, "res.forum.ForumUploadDdxc", "err_space");
            str = str.replaceFirst("\\$allowed", "" + ud.getDiskSpaceAllowed());
            str = str.replaceFirst("\\$used", "" + ud.getDiskSpaceUsed());
            throw new ErrMsgException(str); // "您的磁盘允许空间为" + ud.getDiskSpaceAllowed() + "字节,已用空间为" + ud.getDiskSpaceUsed() + "字节,不能再上传!");
        }
        visualPath = "forum/";
        return super.ReceiveUploadFileHeader(request, fu);
    }

    public String ReceiveUploadFileFinished(HttpServletRequest request, FileUpload fu) throws
            ErrMsgException {
        // 如果是文件的结束,则将文件整理并拷贝至相应的目录,然后删除临时文件
        String fileId = fu.getFieldValue("fileId");
        if (fileId == null)
            throw new ErrMsgException("want fileId");
        UploadFileInfo ufi = (UploadFileInfo) getUploadFileInfos().get(fileId);
        // logger.info("ReceiveUploadFileFinished:" + ufi.getFilePath() + " ---- " + ufi.getClientFilePath());
        if (ufi == null)
                throw new ErrMsgException("want thread header");

        String re = super.ReceiveUploadFileFinished(request, fu);
        // 如果未成功,则退出
        if (!re.equals(file_finished_ok))
            return re;

        // 在UploadFIleInfo指定的保存位置写入文件
        String fullSavePath = ufi.getFullSavePath(fu.getRealPath());

        File file = new File(fullSavePath);
        // logger.info("fullSavePath" + fullSavePath);
        if (file.exists()) {
            // 更新用户的磁盘已用空间
            Privilege privilege = new Privilege();
            UserDb ud = new UserDb();
            ud = ud.getUser(privilege.getUser(request));
            ud.setDiskSpaceUsed(ud.getDiskSpaceUsed() + file.length());
            ud.save();
        }

        return re;
    }
}

⌨️ 快捷键说明

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