0

jsp 페이지에서 보내고 JavaScript ajax 호출을 사용하여 컨트롤러 페이지에서 이미지 파일을 읽어야합니다. jsp 페이지의 경고가 파일 객체가 제대로 읽히지 않는 것 같지만 성공한 컨트롤러 대신 Ajax Giver 오류 응답이 수신됩니다.아약스를 사용하여 jsp에서 스프링 컨트롤러로 파일 보내기

를 사용

코드 조각은 JSP 파일을 다음 메신저입니다

<table> 
<tr> 
    <td>Profile Picture</td> 
    <td><input type="file" id="profilePic"></td> 
</tr> 
<tr> 
    <td colspan="2"><button id="updatePic" onclick="pic();">submit pic</button></td> 
</tr> 
</table> 

스프링 MVC 우리에게 자바 스크립트

function pic() { 
     var formData = new FormData(); 
     formData.append("profilePic", $('#profilePic').get(0).files[0]); 
      $.ajax({ 
      type:"POST", 
      url:"/sdnext/updateprofile.html", 
      processData: false, 
      contentType: false, 
      data:{profilePic:formData}, 
      success:function(data){ 
       alert("Profile Picture has been updated successfully"); 
      }, 
      error:function(data){ 
       alert("Profile Picture has not been updated successfully"); 
      } 
     }); 
} 

컨트롤러

@RequestMapping(value="/updateprofile",method=RequestMethod.POST) 
     public @ResponseBody String updateProfile(@RequestParam("profilePic") InputStream profilePic){ 

    try { 
       int i=0; 
       ArrayList<Byte> listOfBytes=new ArrayList<Byte>(); 
       InputStream input=profilePic.getInputStream(); 
       do{ 
        i=input.read(); 
        if(i!=-1) 
        { 
         listOfBytes.add((byte) i); 
        } 
       }while(i!=-1); 
       System.out.println(listOfBytes.size()); 
       byte []picBytes=new byte[listOfBytes.size()]; 
       for (int j = 0; j < listOfBytes.size(); j++) { 
        picBytes[j]=listOfBytes.get(j); 
       } 

     } catch (IOException e) { 

       e.printStackTrace(); 
     } 

    } 

모든 샘플 파일 입출력 작업 ing 아약스는 많은 도움이 될 것입니다. 어떤 도움을 주시면 감사하겠습니다.

감사

답변

0

체크 this 대답. 그것은 그것을하는 방법을 자세하게 가지고 있습니다.

+1

문제 설명에서 언급했듯이

. Ajax 구성 요소가있는 솔루션을 사용하여 페이지를 다시로드 할 필요가 없기를 바랬습니다. – Altanai

+0

죄송합니다. 질문을 수정했습니다. –