MultipartRequest는 다운로드시 2기가 가 넘으면 int 범위때문에 에러가 발생한다.

이러한 부분은 보완하기 위해서 다운로드할시 stream으로 쭉쭉 받으면 되겠다.

apache 에서  stream api를 확인해보니 


// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();

// Parse the request
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
   
FileItemStream item = iter.next();
   
String name = item.getFieldName();
   
InputStream stream = item.openStream();
   
if (item.isFormField()) {
       
System.out.println("Form field " + name + " with value "
           
+ Streams.asString(stream) + " detected.");
   
} else {
       
System.out.println("File field " + name + " with file name "
           
+ item.getName() + " detected.");
       
// Process the input stream
       
...
   
}
}

라는 예제를 제시하고 있다.

else 부분이 정상적인 파일이 존재 할시이다.


else 부분에 이벤트를.

String path = 저장경로; FileOutputStream fop = new FileOutputStream(new File(저장경로)); Streams.copy(stream, fop, true);


streams.copy를 사용하면 해당 경로에 파일이 쭉쭉~~ stream 방식으로 저장이 되겠다.


블로그 이미지

김진리

,

MultipartRequest  로 업로드를 구현할 시 size 부분에 int 형 자료형만 들어 가게 된다.


그렇게 되면. 용량의 제한은 int 자료형의 범위인  - 2147483648 부터 2147483647 밖에 안되므로 2기가 를 넘지를 못한다.


블로그 이미지

김진리

,

c : 에 설치한 Tomcat 폴더를 복사하여 Tomcat_1 이라고 이름을 주어 생성합니다.

그럼 Tomcat 폴더는 총 2개가 됩니다 .   Tomcat_1 의 Tomcat_1/conf/server.xml 파일에서

<Server port="8006" shutdown="SHUTDOWN">

<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444" />

 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />

저는 빨강색 부분을 원래의 속성 값 + 1씩 하였습니다 .

 

Tomcat_1\bin 폴더 에서 service.bat 파일을 편집으로 열어서

rem set default service name

set service_name = tomcat77   -> 비스명  이자리는 _ 가 등록되지 않습니다.

set pr_displayname= Tomcat_1   -> 서비스에서 나타낼 이름

 

마지막으로 cmd 창을 띄어서

cd : Tomcat7_1\bin 로 이동하신후

service.bat install 을 수행해 줍니다.

 

이제 톰캣을 Run 하실때 각각의 폴더에 해당하는 서비스를 선택하시면 서비스가 실행하게 됩니다.

 

 

블로그 이미지

김진리

,