2016-12-25 10 views
0

봄에 파일을 바인딩하는 데 문제가 있습니다. 폴더에 파일을 저장하고 데이터베이스에 파일 이름을 저장하려고했습니다. 하지만 양식에 파일을 바인딩하는 동안 오류가 발생합니다.봄에 파일을 바인딩하고 폴더에 파일을 업로드하는 방법

@Controller

@RequestMapping(value="/addStudent",method=RequestMethod.POST) 
public String saveStudent(@RequestParam("images") MultipartFile files,@ModelAttribute("addstd") StudentInfo theStudent,Model model){ 
     String fileName=null; 

    if(!files.isEmpty()){ 

     try { 
      String path= session.getServletContext().getRealPath("/WEB-INF/resources/images"); 
      String newName=String.valueOf(new java.util.Date().getTime()); 
      fileName=files.getOriginalFilename(); 
      String ext=FilenameUtils.getExtension(fileName); 
      File imageFile=new File(path,newName+"."+ext); 
      files.transferTo(imageFile); 
      theStudent.setImages(newName+"."+ext); 

     } catch (Exception e) { 

     } 
    } 
    studentService.saveStudent(theStudent); 
    return "redirect:/login"; 
} 

데이터베이스 클래스

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name="id") 
private int id; 

@Column(name="year_id") 
private int year; 


@Column(name="faculty_id") 
private int faculty; 

@Column(name="firstname") 
private String firstName; 

@Column(name="lastname") 
private String lastName; 

@Column(name="contact_no") 
private String contact_No; 

@Column(name="address") 
private String address; 

@Column(name="email") 
private String email; 

@Column(name="images") 
private String images; 

내 JSP 페이지는이 코드에서

<form:form action="addStudent" enctype="multipart/form-data" modelAttribute="addstd" method="POST">  
    <form:hidden path="id" /> 
    <form:input path="firstName" placeholder="Fistname" /> 
    <form:input path="lastName" placeholder="Lastname" /> 
    <form:input path="contact_No" placeholder="Contact Number" /> 
    <form:input path="address" placeholder="Address" /> 
    <form:input path="email" placeholder="Email"/
    Year: 

    <form:select path="year"> 
      <c:forEach var="temp" items="${studentyear}"> 
      <form:option value="${temp.yearId}">${temp.year}</form:option> 
      </c:forEach> 
     </form:select> 

     Faculty: 
     <form:select path="faculty"> 
      <c:forEach var="temp" items="${studentfaculty}"> 
      <form:option value="${temp.faculty_id}" >${temp.faculty}</form:option> 
      </c:forEach> 
     </form:select> 
     Profile: <form:input type="file" path="images" /> 

    <input type="submit" value="Add/Update Record" class="button" /> 
</form:form> 

나는 오류 "클라이언트가 보낸 요청을 얻고 있었다 구문 적으로 부정확하다. "

답변

0

제거 JSP

<form:input type="file" path="images" /> 

에서 다음 코드의 경로와 이름으로 대체 = "이미지"

<input type="file" name="images" /> 

경로가 POJO로 매핑 할 것이기 때문에.

+0

경로를 바꿀려고했지만 "TDL 또는 태그 파일에 따르면 태그 입력에 필수적인 속성 경로는" – sudeepsth

+0

양식 태그를 front.see에서 제거합니다. 업데이트 된 답변은 미안합니다. 그것을 놓친 –

관련 문제