2013-01-22 4 views
0

그래서 resumable.js를 사용하여 파일을 서버에 업로드하고 있습니다.JSP 서버 디렉토리에 쓰기

I가 저장하려는 디렉토리는 분명히 방금 만든

/dir/files/upload/ 

같은 것입니다 만,이 디렉토리에 쓸 수있는 사용자 권한이 있습니다. 나는 차종을 resumable.js POST 요청을 듣고 JSP를 사용하여, 해당 디렉토리에

.part 

파일을 쓰고 있어요. 샘플 리스너 :

<%   if(request.getMethod().equals("POST") && request.getParameter("resumableFilename") != null){ 
       long chunkSize = StringUtils.isEmpty(request.getParameter("resumableChunkSize"))? 0:Long.parseLong(request.getParameter("resumableChunkSize")); 
       String fileName = request.getParameter("resumableFilename"); 
       long totalSize = StringUtils.isEmpty(request.getParameter("resumableTotalSize"))? 0:Long.parseLong(request.getParameter("resumableTotalSize")); 
       String temp_dir = "/dir/files/upload/"+request.getParameter("resumableIdentifier");//Add in user_id 
       String dest_dir = temp_dir+fileName+".part"+request.getParameter("resumableChunkNumber"); 
       File fDir = new File(temp_dir); 
       fDir.mkdirs(); 
       if(ServletFileUpload.isMultipartContent(request)){ 
        DiskFileItemFactory factory = new DiskFileItemFactory(); 
        factory.setRepository(new File(temp_dir));       ServletFileUpload upload = new ServletFileUpload(factory); 
        List items = upload.parseRequest(request); 
        ArrayListIterator iter = (ArrayListIterator)items.iterator(); 
        FileItem item = (FileItem)iter.next(); 
        File fileWithNewDir = new File(dest_dir); 
        item.write(fileWithNewDir); // write file to dest_dir (fileName.part*CHUNK_NUM*) 
        } 
       } 
%> 

스크립트는 재개를위한 JS 자체에 따르면

www.site.com/pubs/res.jsp 

에서 호스팅, 업로드의 프로세스가 완료됩니다, 그러나, 새로운 디렉토리는 전혀 이루어지지 않습니다. 나는 그것이 쓰기 권한이 아니라는 것을 안다. 그래서 그것은 다른 것이어야한다.

여기에 새로운 재개 객체 그것은 JSP 파일을 치는 것 같다

var resume = new Resumable({ 
    target:"res.jsp", 
    resumableChunkSize: 1*1024*1024, 
    simultaneousUploads: 3, 
    testChunks: false, 
    throttleProgressCallbacks: 1 
    }); 

에 대한 자바 스크립트에서 내 전화,하지만 아무것도 발생하지 않습니다.

나는 그 청취자를 구현하기 위해 아파치의 파일 업로드 페이지를 따라 갔지만, 어느 시점에서 잘못되었을 수도있다.

Apache's FileUpload

디렉토리 문제의

Resumable.js

답변

1

위치. 그것은 전쟁의 맥락에 있어야합니다. 컨테이너 컨텍스트 외부의 어떤 위치에도 쓸 수 없습니다. 로그를 보면이 메시지를 설명 할 수있는 오류 메시지를 볼 수 있습니다.

+0

서블릿 + JSP 파일이있는 영역과 동일한 영역을 의미하는 경우. 로그를 살펴보면,'ServletFileUpload.isMultipartContent()'에 대해'ClassNotFoundException'가 많이 발생하고있는 것 같습니다. –

+0

'apache.commons' 라이브러리가 이미 제대로 임포트 되었기 때문에 이상하게 보입니다. 다른 이유로 ? –

+1

라이브러리 경로가 제대로 설정되지 않았습니다. 디렉토리 액세스 또는 기타 문제를 파헤 치기 전에 ClassNotFoundException을 제거해야합니다. 라이브러리 경로 및 가져 오기 설정을 다시 확인하십시오. – spooky

관련 문제