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

📄 fileuploadrequest.java

📁 intra_mart是日本NDD公司开发的著名企业应用解决方案中间件。集成了J2ee服务器
💻 JAVA
字号:
/*
 * FileUploadRequest.java
 *
 * Created on 2002/08/09, 14:54
 */

package jp.co.intra_mart.framework.base.service;

import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.List;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

import jp.co.intra_mart.foundation.http.MultipartFormData;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * 僼傽僀儖傾僢僾儘乕僪愱梡偺儕僋僄僗僩偱偡丅
 *
 * @author INTRAMART
 * @since 3.2
 */
class FileUploadRequest extends HttpServletRequestWrapper {

    /**
     * FileUploadRequest愱梡偺椺奜偱偡丅
     */
    private class FileUploadRequestIllegalArgumentException
        extends IllegalArgumentException {

        /**
         * 敪惗傕偲偺椺奜
         */
        Throwable e = null;

        /**
         * FileUploadRequestIllegalArgumentException傪惗惉偟傑偡丅
         */
        public FileUploadRequestIllegalArgumentException() {
            super();
        }

        /**
         * 巜掕偝傟偨儊僢僙乕僕傪帩偮FileUploadRequestIllegalArgumentException傪惗惉偟傑偡丅
         *
         * @param message 儊僢僙乕僕
         */
        public FileUploadRequestIllegalArgumentException(String message) {
            super(message);
        }

        /**
         * 巜掕偝傟偨儊僢僙乕僕偲椺奜傪帩偮FileUploadRequestIllegalArgumentException傪惗惉偟傑偡丅
         *
         * @param message 儊僢僙乕僕
         * @param e 椺奜
         */
        public FileUploadRequestIllegalArgumentException(
            String message,
            Throwable e) {
            super(message);
            this.e = e;
        }

        /**
         * 椺奜傪昞帵偟傑偡丅
         */
        public void printStackTrace() {
            super.printStackTrace();
            e.printStackTrace();
        }

        /**
         * 椺奜傪巜掕偝傟偨僗僩儕乕儉偵昞帵偟傑偡丅
         * @param stream 僗僩儕乕儉
         */
        public void printStackTrace(PrintStream stream) {
            super.printStackTrace(stream);
            e.printStackTrace(stream);
        }

        /**
         * 椺奜傪巜掕偝傟偨儔僀僞乕偵昞帵偟傑偡丅
         * @param writer 儔僀僞乕
         */
        public void printStackTrace(PrintWriter writer) {
            super.printStackTrace(writer);
            e.printStackTrace(writer);
        }
    }

    /**
     * 夝愅嵪偺儕僋僄僗僩偺撪梕
     */
    private MultipartFormData multipartFormData;

    /**
     * FileUploadRequest傪怴婯偵惗惉偟傑偡丅
     *
     * @param request 儕僋僄僗僩
     * @throws IllegalArgumentException 堷悢偑晄惓偺応崌
     */
    public FileUploadRequest(HttpServletRequest request)
        throws IllegalArgumentException {
        super(request);
        MultipartFormData data = null;
        try {
            data = new MultipartFormData(request);
        } catch (IOException e) {
            throw new FileUploadRequestIllegalArgumentException(
                e.getMessage(),
                e);
        }
        setMultipartFormData(data);
    }

    /**
     * 夝愅嵪偺儕僋僄僗僩偺撪梕傪愝掕偟傑偡丅
     *
     * @param multipartFormData 夝愅嵪偺儕僋僄僗僩偺撪梕
     */
    private void setMultipartFormData(MultipartFormData multipartFormData) {
        this.multipartFormData = multipartFormData;
    }

    /**
     * 夝愅嵪偺儕僋僄僗僩偺撪梕傪庢摼偟傑偡丅
     *
     * @return 夝愅嵪偺儕僋僄僗僩偺撪梕
     */
    private MultipartFormData getMultipartFormData() {
        return this.multipartFormData;
    }

    /**
     * 儕僋僄僗僩傪庢摼偟傑偡丅
     *
     * @return 儕僋僄僗僩
     */
    public HttpServletRequest getHttpServletRequest() {
        return (HttpServletRequest)getRequest();
    }

    /**
     * 奩摉偡傞僷儔儊乕僞偺暥帤楍傪庢摼偟傑偡丅
     * 偙偺儊僜僢僪偼javax.servlet.http.HttpServletRequest偺getParameter(String)儊僜僢僪偲摨偠摦嶌傪偟傑偡丅
     *
     * @param str 僷儔儊乕僞柤
     * @return 僷儔儊乕僞偺抣
     */
    public String getParameter(String str) {
        MultipartFormData.Entity entity = getEntity(str);
        String param = null;

        try {
            param = entity.getContent(getCharacterEncoding());
        } catch (UnsupportedEncodingException e) {
            // 壗傕偟側偄
        }

        return param;
    }

    /**
     * 僷儔儊乕僞偺儅僢僾傪庢摼偟傑偡丅
     * 暥帤楍僷儔儊乕僞偵奩摉偡傞売強偵儅僢僾偝傟偨抣偼javax.servlet.http.HttpServletRequest偺getParameterMap()偲摨偠抣偵側傝傑偡偑丄
     * 傾僢僾儘乕僪僼傽僀儖僷儔儊乕僞偵奩摉偡傞売強偵儅僢僾偝傟偨抣偼暿僆僽僕僃僋僩偵側傝傑偡丅
     *
     * @return 僷儔儊乕僞偺儅僢僾丗暥帤楍偺応崌偼String丄僼傽僀儖偺応崌偼MultipartFormData.Entity偵儅僢僾偝傟偨抣
     */
    public Map getParameterMap() {
        Map map = new HashMap();
        Map result = new HashMap();
        MultipartFormData.Entity entity = null;
        Object obj = null;
        List value = null;

        // 儕僋僄僗僩偺撪梕傪儅僢僾偵曄姺
        Iterator entities = getMultipartFormData().iterator();
        while (entities.hasNext()) {
            entity = (MultipartFormData.Entity)entities.next();
            if (entity.containsHeader("Content-Type")) {
                // 僼傽僀儖偺応崌
                obj = entity;
            } else {
                // 偦偺懠偺応崌
                try {
                    obj = entity.getContent(getCharacterEncoding());
                } catch (UnsupportedEncodingException e) {
                    // 壗傕偟側偄
                }
            }
            value = (List)map.get(entity.getName());
            if (value == null) {
                value = new ArrayList();
            }
            value.add(obj);
            map.put(entity.getName(), value);
        }

        // 儅僢僾偺拞偺儕僗僩傪攝楍偵曄姺
        Iterator keys = map.keySet().iterator();
        while (keys.hasNext()) {
            Object key = keys.next();
            List values = (List)map.get(key);
            Object[] params = values.toArray();
            result.put(key, params);
        }

        return result;
    }

    /**
     * 偡傋偰偺僷儔儊乕僞柤傪庢摼偟傑偡丅
     * 偙偺儊僜僢僪偼javax.servlet.http.HttpServletRequest偺getParameterNames()儊僜僢僪偲摨偠摦嶌傪偟傑偡丅
     *
     * @return 偡傋偰偺僷儔儊乕僞柤偺Enumeration
     */
    public Enumeration getParameterNames() {
        Hashtable table = new Hashtable();
        Iterator entities = getMultipartFormData().iterator();
        while (entities.hasNext()) {
            MultipartFormData.Entity entity =
                (MultipartFormData.Entity)entities.next();
            table.put(entity.getName(), entity.getName());
        }

        return table.elements();
    }

    /**
     * 奩摉偡傞僷儔儊乕僞偺暥帤楍偺攝楍傪庢摼偟傑偡丅
     * 偙偺儊僜僢僪偼javax.servlet.http.HttpServletRequest偺getParameterValues(String)儊僜僢僪偲摨偠摦嶌傪偟傑偡丅
     *
     * @param str 僷儔儊乕僞柤
     * @return 奩摉偡傞僷儔儊乕僞偺暥帤楍偺攝楍
     */
    public String[] getParameterValues(String str) {
        MultipartFormData.Entity[] entities =
            getMultipartFormData().getEntities(str);
        String[] result = new String[entities.length];
        for (int i = 0; i < result.length; i++) {
            try {
                result[i] = entities[i].getContent(getCharacterEncoding());
            } catch (UnsupportedEncodingException e) {
                // 壗傕偟側偄
            }
        }

        return result;
    }

    /**
     * 奩摉偡傞僷儔儊乕僞偺僄儞僥傿僥傿傪庢摼偟傑偡丅
     *
     * @param str 僷儔儊乕僞柤
     * @return 奩摉偡傞僷儔儊乕僞偺僄儞僥傿僥傿
     */
    MultipartFormData.Entity getEntity(String str) {
        return getMultipartFormData().getEntity(str);
    }
}

⌨️ 快捷键说明

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