오픈커뮤니티 개발자와 사용자가 함께 만들어가는 열린 표준프레임워크

본문바로가기

본문

현재위치

 

표준프레임워크 관련 궁금증을 서로 묻고 대답하는 공간입니다.

멀티파트 NullPointerException 에러 게시글 상세 보기
제목
멀티파트 NullPointerException 에러
작성자명 이정은 작성일 2017-08-30 조회 42 글번호 19789

세가지 방법으로 멀티파트를 시도해보고 있는데 NullPointerException에러가 나오네요...

첫번째는 에러도 안나오고.. 콘솔창에 찍히지도 않고...

두번째 세번째는

Forwarding to error page from request [/upload2.action] due to exception [null] 

java.lang.NullPointerException: null

에러가 나옵니다... 

text값은 받아오는데 파일을 못받아오는것 같네요

zzApplication.java

@Bean

public CommonsMultipartResolver multipartResolver() {

CommonsMultipartResolver resolver=new CommonsMultipartResolver();

resolver.setDefaultEncoding("utf-8");

return resolver;

}

zzController.java

@Controller

public class ZzController {



@RequestMapping("/form")

public String form(){

return "form";

}



@RequestMapping("/zz/upload1.action")

public ModelAndView upolad1(

@RequestParam("hakbun") String num,

@RequestParam("report") MultipartFile file){

System.out.println(num);

ModelAndView mav = new ModelAndView();

String filename = file.getOriginalFilename();

System.out.println(filename);

//실제 파일을 업로드하기 위한 파일 객체 생성

File f = new File("c:\\upload\\"+num+"_"+filename);

//한번에 한해서 동일한 파일이 존재하면 이름에 (1) ,



if(f.exists()){

f = new File("c:\\upload\\"+num+"_"+filename+"(1)");

}



try {

file.transferTo(f);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}



return mav;

}




@RequestMapping("/upload2.action")

public ModelAndView upolad2(MultipartHttpServletRequest request){

ModelAndView mav = new ModelAndView();

String hakbun = request.getParameter("hakbun");

MultipartFile f = request.getFile("report");

String filename = f.getOriginalFilename();

System.out.println(filename);

try {

byte[] b = f.getBytes();

File file = new File("c:\\upload\\"+hakbun+"_"+filename);

//System.out.println(file.lastModified());

//System.out.println(new java.sql.Date(file.lastModified()));

//System.out.println(new java.util.Date(file.lastModified()));

//파일에 바이트 배열을 기록할 수 있는 스트림 생성

FileOutputStream fos = new FileOutputStream(file);

fos.write(b);

fos.close();

} catch (IOException e){

System.out.println(e.getMessage());

}



return mav;

}





@RequestMapping("/upload3.action")

public ModelAndView upolad3(ZzVO zz, HttpServletRequest request, HttpSession session){

ModelAndView mav = new ModelAndView();



//프로젝트 내의 f 폴더의 경로를 만들기



String path = request.getRealPath("/f");

System.out.println(path);

String num = zz.getHakbun();

System.out.println(num);

String filename =zz.getReport().getOriginalFilename();

System.out.println(filename);





try {

zz.getReport().transferTo(new File(path+"/"+num+"_"+filename));

}catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return mav;

}

zzVO.java

public String getHakbun() {

return hakbun;

}

public void setHakbun(String hakbun) {

this.hakbun = hakbun;

}

public MultipartFile getReport() {

return report;

}

public void setReport(MultipartFile report) {

this.report = report;

}

@Override

public String toString() {

return "Command [hakbun=" + hakbun + ", report=" + report + "]";

}

form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<h2>@RequestParam 사용~</h2>

<form action="/zz/upload1.action" method="post"

enctype="multipart/form-data">

<br /> 학번 : <input type="text" name="hakbun" /><br /> 파일 : <input

type="file" name="report" /><br /> <input type="submit" value="제출"><br />

</form>



<h2>@MultipartRequest 사용</h2>

<form action="/zz/upload2.action" method="post"

enctype="multipart/form-data">

학번 : <input type="text" name="hakbun" /><br /> 파일 : <input type="file"

name="report" /><br /> <input type="submit" value="제출"><br />

</form>





<h2>Command 사용</h2>

<form action="/zz/upload3.action" method="post"

enctype="multipart/form-data">

학번 : <input type="text" name="hakbun" /><br /> 파일 : <input type="file"

name="report" /><br /> <input type="submit" value="제출"><br />

</form>

</body>

</html>



댓글 불러오는중...

하단영역