2012-01-02 3 views
-3

어떻게 jQuery 함수 $ .ajax()에 이미지를 업로드합니까? 그 후 나는이 모양이다 FileUpload library

에 의해 서블릿에 그것을 처리 할 :

$('#uploadButton').click(function() { 
    var $form = $('#avatarUploadForm'); 
    var jsonFormData = $form.serializeObject(); 

    $.ajax({ 
     data : { 'file' : jsonFormData }, 
     type : 'POST', 
     contentType : 'multipart/form-data', 
     dataType : 'text', 
     url : 'upload', 
     success: function(){ 
      alert('uploaded'); 
     } 
    }); 
}); 

그리고는 FileUpload 방법, 구문 분석해야합니다

<form id="avatarUploadForm" action="upload" method="post" enctype="multipart/form-data"> 
        <input name="data" id="file" type="file"><br> 
        <input id="selectFileButton" type="button" value="Select"><br> 
        <input id="uploadButton" type="button" value="Upload"><br> 
       </form> 

나는 $ 아약스() 메소드가 내 요청. UploadServlet에 있습니다 :

protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
List items = upload.parseRequest(request); 

어떻게 데이터를 HttpServletRequest 요청으로 변환합니까?

+1

이 당신의 문제가 무엇인지에 더 구체적으로 "아약스와 함께 업로드"의 functionallity을 달성, 페이지를 새로 고침없이 업로드에 아주 좋은 가이드입니다. SO는 자습서 나 코드 작성 서비스를위한 리소스가 아닙니다. –

+0

일반적인 문제가 있습니다. 당신이 물론 질문이 아니라 그것을 배우고 싶어하는 것 같습니다! 검색, 자기 자신을 시도, 그럼 문제가 있다면 당신은 해결책을 찾지 못했는지 물어볼 수 있습니다. –

+0

@ user1048261 아래의 내 게시물을 참조하십시오. 작동 방법입니다. – Guy

답변

0

캔버스에로드 할 수있는 경우 toDataURL() 메서드를 사용하고 base64 문자열 인코딩 된 값을 보냅니다. 이것은 최신 브라우저에서만 작동합니다 (따라서 이전 IE는 없음)