multipart/form-data 인지 체크 

MultipartRequestWrapper 상속해서 수정




1. multipart/form-data 인지 체크하는 방법


request.getContentType()).toLowerCase()).startsWith("multipart/form-data")



2.MultipartRequestWrapper 상속해서 수정

- 단 파일 업로드시 null로 체크 되버려서 사용하지는 말고 참고용으로만 



package kr.co.test.util;


import java.io.IOException;

import java.util.HashMap;


import javax.servlet.http.HttpServletRequest;


import org.apache.struts.upload.MultipartRequestWrapper;


import com.oreilly.servlet.multipart.MultipartParser;

import com.oreilly.servlet.multipart.ParamPart;

import com.oreilly.servlet.multipart.Part;


public class SecurityMultipartRequestWrapper extends MultipartRequestWrapper {


private MultipartParser mp = null ; 

public SecurityMultipartRequestWrapper(HttpServletRequest request) {

super(request);

try {

mp = new MultipartParser((HttpServletRequest)request, 1000000);

parameters = new HashMap();

Part part ;

String name ="", value="";

String[] values = null;

    while ( ( part = mp.readNextPart() ) != null ) { 

    name = part.getName() ; 


    if ( part.isParam() ) { 

    ParamPart paramPart = (ParamPart) part ; 

    if (parameters.get(name)!=null){

    if (parameters.get(name).getClass().equals(String[].class)){

    String[] temp = (String[])parameters.get(name);

    String newValue[] = new String[temp.length + 1];

   

            System.arraycopy(temp, 0, newValue, 0, temp.length);

            newValue[temp.length] = paramPart.getStringValue();

            parameters.put(name, newValue);

    } else {

    String newValue[] = new String[2];

    newValue[0] = (String) parameters.get(name);

    newValue[1] = paramPart.getStringValue();

    parameters.put(name, newValue);

    }

    } else {

    parameters.put(name, paramPart.getStringValue());

    }

    }

    }

} catch (IOException e) {

e.printStackTrace();

}

}


@Override

    public String getParameter(String name)

    {

String value = null;

        if(parameters.get(name).getClass().equals(String[].class))

        {

            String mValue[] = (String[])parameters.get(name);

            if(mValue != null && mValue.length > 0)

                value = mValue[0];

        } else {

        value = (String)parameters.get(name);

        }

        return value.replaceAll("a", "");

    }

}

'JAVA' 카테고리의 다른 글

[JAVA] Object Array  (0) 2022.05.23
[JAVA] 휴일 알아내기  (0) 2021.06.25
multipart 파일체크  (4) 2019.04.09
multipart 파라미터 받기  (0) 2019.02.28
multipart 클래스 사용 예제  (0) 2019.02.28
블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,