2012-11-29 8 views
0

내가 내 컨트롤러에 request.getContentType()를 수행 할 때 내가 갖는 내 JSP에서 XMLHttpRequest() 등을 사용하여 파일을 업로드하고 있어요 : 또한 내가처리 다중/폼 데이터

multipart/form-data; boundary=---------------------------4664151417711. 

을받지 못했습니다을 파일을 가져 와서 컨트롤러의 내용을 가져 오는 방법. 누구든지 도와주세요.

업데이트 - 내 JSP에서이 작업을 수행하고 있습니다.

function fileUpload() { 
var url= document.getElementById("urlId").value; 
var file= document.getElementById("xslId").files[0]; 
var formdata = new FormData(); 
formdata.append("url", url); 
formdata.append("file", file); 
var xhr = new XMLHttpRequest();  
xhr.open("POST","http://localhost:8080/XlsUpload/openSource.htm", true); 
xhr.send(formdata); 
xhr.onload = function(e) { 
    };      
    } 

내가 업로드 한 파일의 내용과 내 컨트롤러에있는 텍스트 필드 즉, URL의 값을 얻는 방법을 강타하고있어 내 controller--

public void openSource(@ModelAttribute("domTool") DomTool domTool,HttpServletRequest  request,HttpServletResponse response){ 
    String type=request.getContentType(); 

또한에

. 형식이 멀티 파트/폼 데이터로 표시됩니다.

+0

추가 정보를 추가하는 것이 좋습니다. 코드 스 니펫을 추가하면 사람들이 코드가하는 것을 알 수 있습니다. 현재의 형태에서는 무엇이 잘못되었는지를 짐작하기가 어렵습니다. – ch4nd4n

+0

태그를 살펴 봄으로써 아약스 요청을 사용하여 파일을 업로드하려고한다고 생각할 수 있습니다. 보안상의 이유로 AJAX 요청에서이 작업을 수행 할 수 없으며 [blueImp jquery file upload] (https://github.com/blueimp/jQuery-File)와 같이 Ajax 상호 작용을 처리하는 구성 요소를 사용하는 것이 좋습니다. -Upload) (* ajax 요청을 처리하기 위해 iframe을 사용 *). –

+0

@LuiggiMendoza HTML5는 이미 이것을 지원합니다. 하지만 모든 브라우저에서 사용할 수있는 것은 아닙니다. – ch4nd4n

답변

1

멀티 파트 내용을 구문 분석하기위한 commons-fileupload이라는 Apache Commons 솔루션이 있습니다. 당신은 그것을 here 찾을 수 있습니다.

자신의 tutorial에서 복사 한 가장 간단한 예는 다음과 같습니다

@Override 
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    FileItemFactory factory = new DiskFileItemFactory(); 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    List items = upload.parseRequest(request); 

    // iterate over items (i.e. list of FileItem) and access 
    // the content with getInputStream() 
} 
+0

JS – kromit

+1

에서이 작업을하고 싶다고 생각합니다. 왜 그런지 모르지만 왜 업로드, JSP 및 컨트롤러에 대해 이야기할까요? – Yevgeniy

+0

내 잘못, 미안 해요 :) – kromit