2014-06-13 4 views
0

현재이 사이트에서 본 일부 예제를 기반으로 구현 된 업로드 파일 입력이 필요한 프로젝트에서 작업하고 있습니다.파일 업로드 진행률이 서버 오류로 중지되지 않음

function send(file){ 
var fd = new FormData(); 

    fd.append(file.name, file); 
    $.ajax({ 
     url: 'upload', 
     type: 'POST', 
     enctype: "multipart/form-data", 
     xhr: function xhr() { 
      myXhr = $.ajaxSettings.xhr(); 
      if (myXhr.upload) { 
       myXhr.upload.addEventListener('progress', function(evt) { 
        if (evt.lengthComputable) { 
         var percentComplete = evt.loaded/evt.total; 
         percentComplete = parseInt(percentComplete * 100, 10); 

         progress.setValue(percentComplete); 

        } 
       }, false); 

      } 
      return myXhr; 
     }, 

     beforeSend: beforeSend, 
     success: onComplete, 
     error: onError, 
     // Form data 
     data: fd, 
     //Options to tell jQuery not to process data or worry about content-type. 
     cache: false, 
     contentType: false, 
     processData: false 
    }); 
} 

그러나 한 가지가 잘 작동하지 않으며 다른 사람이 그 사실을 잘 설명하는지 궁금합니다. 자바 서버 쪽에서 내 서블릿은 사용자가 파일을 업로드 할 수 있는지 확인하고 성공하지 못하면 false를 반환합니다. 궁금한 점은 서버가 업로드 할 때 진행률 표시 줄이 계속 진행 중이며 진행률이 끝나면 오류 만 발생한다는 것입니다. 정말 진전이 시작되지 않거나 반환 된 오류로 인해 취소되어야한다는 것이 나의 기대치가 아닌 이상한 일입니다. 확실히 나는 내가 보내기 시작하기 전에 사용자를 확인할 수 있었지만 두 번째는 끝점이없는 아약스에서 잘못된 URL을 넣었고 끝까지 진행을 보여 주었다. 때때로 브라우저를 정지시킵니다. 서버 오류 진행률 및 진행률로 먼저 진행을 중지 할 수있는 방법이 있습니까? 사람 같은 문제가 발생을 설립하지 인터넷 검색을 몇 시간 후 해결책을 찾기 위해 좋은 것 감사 JP

서버가 파일이 이미 업로드 요청을 수신하고 그들이 할 수있는 사용자에게 너무 늦게되면
+0

네트워크 탭에서이 함수에 대한 URL을 클릭하면이 경우'upload'가됩니다.이 경우'response' 탭을보고'null'을 출력합니까 ??? – Jai

+0

네트워크 응답은 서버에서 가져온 {succes : false}입니다. –

답변

0

업로드하지 마십시오. 먼저 Ajax 호출을 하나 수행하여 사용자가 업로드 할 수 있는지 확인한 다음 위의 호출을 통해 권한이있는 경우 파일을 업로드 할 수 있습니다.

사용자에게 업로드 권한이없는 경우 업로드 양식을 표시하는 이유는 무엇입니까?

+0

사용자에 대한 올바른 및 나는 할 것이다 그러나 내 질문은 또한 큰 파일을 업로드하면 600MO 말하고 어떤 이유로 서버가 파일을 저장하는 데 실패하거나 무엇이 오래 걸리지 않습니다 거기에 멈출 방법이 없습니다 오류를 반환하여 클라이언트 측 진행 (xhr에 abort 함수 호출)? –

+0

서버에 장애가 발생하면 진행률 표시 줄이 중지됩니다. –

관련 문제