multi/part upload - 아주 간단한 멀티파트 파일 업로드
이 소스 코드보다 간단한건 없다.
-- pom.xml
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
-- view
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<pre>
<form name="fileForm" action="requestupload2" method="post" enctype="multipart/form-data">
<input multiple="multiple" type="file" name="file" />
<input type="text" name="src" />
<input type="submit" value="전송" />
</form>
</pre>
</body>
</html>
-- Contoroller
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
.......
@RequestMapping(value = "requestupload2")
public String requestupload2(MultipartHttpServletRequest mtfRequest)
{
List<MultipartFile> fileList = mtfRequest.getFiles("file"); // 파일인 경우
String src = mtfRequest.getParameter("src"); // 텍스트인경우도 가능
System.out.println("src value : " + src);
String path = "D:/temp/";
String originFileName;
long fileSize;
String saveFile;
for (MultipartFile mf : fileList)
{
originFileName = mf.getOriginalFilename(); // 원본 파일 명
fileSize = mf.getSize() ; // 파일 사이즈
System.out.println("originFileName : " + originFileName);
System.out.println("fileSize : " + fileSize);
saveFile = path + System.currentTimeMillis() + originFileName;
try {
mf.transferTo(new File(saveFile));
} catch (IllegalStateException e) {
logger.info("●●●●●● IllegalStateException : " + e.toString());
} catch (IOException e) {
logger.info("●●●●●● IOException : " + e.toString());
}
}
return "redirect:/upload_p.jsp";
}
-- VO
package com.erp.vo;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import com.erp.vo._common_field;
public class bbs_board extends _common_field implements Serializable
{
/*
* Serialization
*/
private static final long serialVersionUID = 1L;
/*
* BOARD - FILE
*/
private int mna_num ; //
private int mno_num_key ; //
private String mna_type ; //
private String mna_part ; //
private int mna_position ; //
private String mna_view ; //
private String mna_file ; //
private String mna_file_org ; //
private String mna_text ; //
private String mna_create_u ; //
private String mna_create_d ; //
private String mna_update_u ; //
private String mna_update_d ; //
private String mna_rmk ; //
..
..
..
생략
/*
* @ File Upload
*/
public String toStringSimple() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SIMPLE_STYLE);
}
public String toStringDefault() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
}
/*
public String toStringJson() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
*/
public String toStringMultiline() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
/*
public String toStringNoClass() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.NO_CLASS_NAME_STYLE);
}
*/
public String toStringNoFieldName() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.NO_FIELD_NAMES_STYLE);
}
public String toStringShortPrefix() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
@Override
public String toString()
{
return "bbs_board [mna_num=" + mna_num + ", mno_num_key=" + mno_num_key + ", mna_type="
+ mna_type + ", mna_part=" + mna_part + ", mna_position=" + mna_position + ", mna_view=" + mna_view
+ ", mna_file=" + mna_file + ", mna_file_org=" + mna_file_org + ", mna_text=" + mna_text + ", mna_create_u="
+ mna_create_u + ", mna_create_d=" + mna_create_d + ", mna_update_u=" + mna_update_u + ", mna_update_d="
+ mna_update_d + ", mna_rmk=" + mna_rmk + "]";
}
}
-- dispatcher.xml
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="100000000" />
<beans:property name="maxInMemorySize" value="100000000" />
</beans:bean>
|