2016-10-15 4 views
1

타사 API를 사용하여 해당 서버에 비디오를 업로드하고 있습니다. 비디오를 업로드하고 나면 모든 파일이 업로드되었는지 확인하기 위해 확인 호출을합니다 ('verifyUpload()'). 모든 파일이 업로드 되었다면 업로드 된 마지막 바이트에서 업로드 ('resumeUpload()')를 다시 시작합니다. 내가 겪고있는 문제는 왜 'resumeUpload()'가 실행중인 것으로 보이지 않는지 이해할 수 없다 - 잘못 코딩 한 적이 있습니까? 콘솔 I는 다음 라인 resumeUpload()에서 실행에서 볼 수 다른 AJAX 호출 내에서 AJAX 호출 실행 (jquery 없음)

:

CONSOLE.LOG ('vim.resumeUpload (...)');

console.log ('stringArgument :'+ stringArgument);

줄 대신 : xmh.setRequestHeader ('Content-Range', stringArgument); ('바이트 /', '콘텐츠 - 범위') xmh.setRequestHeader;

내가보고하고 실행중인

은 verifyUpload()에서 실행됩니다.

verifyUpload는()

// VERIFY UPLOAD (SO FAR) 
var verifyUpload = function(){ 
console.log('verifying upload() ...'); 

var xmh = new XMLHttpRequest; 

xmh.onreadystatechange = function(){ 

    console.log('xmh.readyState111: ' + xmh.readyState); 
    console.log('xmh.status111: ' + xmh.status); 

    if(xmh.readyState == xmh.HEADERS_RECEIVED){ 
     console.log('VERIFY RESPONSE HEADERS: ' + xmh.getAllResponseHeaders()); 
     console.log('getResponseHeader(\'Content-Range\')' + xmh.getResponseHeader("Range")); 

     var range = xmh.getResponseHeader("Range"); 
     var rangeArray = range.split('-'); 
     var bytesUploaded = rangeArray[1]; 
     bytesUploaded = Number(bytesUploaded); 

     var leftToUpload = vim.vidFileSize-bytesUploaded; 
     console.log('bytesUploaded: '+bytesUploaded); 
     console.log('byteLeftToUpload: '+ leftToUpload); 

     // IF ALL THE FILE HAS BEEN UPLOADED TO THE SERVER 
     // COMPLETE UPLOAD 
     if(leftToUpload == 0){ 
      completeVidUpload(); 
     }else{ 
      // NEED TO RESUME UPLOAD FROM WHERE WE LAST LEFT OFF 
      vim.bytesToUploadFrom = bytesUploaded + 1; 
      var stringValue = 'bytes '+vim.bytesToUploadFrom+'-'+vim.vidFileSize+'/'+vim.vidFileSize+''; 
      console.log('stringValue: '+ stringValue); 
      resumeUpload(stringValue); 
     } 
    } 
} 
xmh.open('PUT', vim.upload_link_secure); 
xmh.setRequestHeader('Content-Range', 'bytes */*'); 
xmh.send(); 
} 

resumeUpload() :

// RESUME UPLOAD WHERE LEFT OFF 
var resumeUpload = function(stringArgument){ 
console.log('vim.resumeUpload() ...'); 
console.log('stringArgument: ' + stringArgument); 

var xmh = XMLHttpRequest; 

// SET EVENT LISTENERS 
// SET EVENT LISTENERS 
xmh.upload.addEventListener('progress', uploadProgres, false); 
xmh.addEventListener('load', uploadComplete, false); 
xmh.addEventListener('error',uploadError, false); 

xmh.onreadystatechange = function(){ 
    if(xmh.readyState == xmh.HEADERS_RECEIVED){ 
     console.log('VERIFY RESPONSE HEADERS222: ' + xmh.getAllResponseHeaders()); 
     console.log('getResponseHeader(\'Content-Range\')222' + xmh.getResponseHeader("Range")); 
    } 
} 
xmh.open('PUT', vim.upload_link_secure); 
xmh.setRequestHeader('Content-Range', stringArgument); 
xmh.send(); 

}

+0

을 _But 대신 라인의 : xmh.s 당신이'xmh.setRequestHeader ('Content-Range', stringArgument);를 로그 할 곳이 보이지 않는다 ' –

+0

'요청시 브라우저 개발 환경에서 볼 수있다. ('Content-Range', stringArgument) header 'section 내가 보낸 내용 – dave

+0

제 답변에서 언급 한 것처럼'new'를 추가 했습니까? –

답변

0

난 당신이 여기 resumeUploadnew을 놓친 생각 :

var xmh = XMLHttpRequest;