2015-08-05 1 views

ответ

-1
  1. By Hooking FileAdded Event, как показано ниже.

     r.on('fileAdded', function computeHashes(resumableFile, offset, fileReader) { 
         // debugger; 
         // var round = resumableFile.resumableObj.getOpt('forceChunkSize') ? Math.ceil : Math.floor; 
          var chunkSize = resumableFile.resumableObj.opts.chunkSize;// resumableFile.getOpt('chunkSize'); 
          var numChunks = Math.max(Math.floor(resumableFile.file.size/chunkSize), 1); 
          var forceChunkSize = false;//resumableFile.getOpt('forceChunkSize'); 
          var startByte, endByte; var hasher = new SparkMD5(); 
          var func = (resumableFile.file.slice ? 'slice' : (resumableFile.file.mozSlice ? 'mozSlice' : (resumableFile.file.webkitSlice ? 'webkitSlice' : 'slice'))); 
          var bytes; 
    
          resumableFile.hashes = resumableFile.hashes || []; 
          fileReader = fileReader || new FileReader(); 
          offset = offset || 0; 
    
         // if (resumableFile.resumableObj.cancelled === false) { 
           startByte = offset * chunkSize; 
           endByte = Math.min(resumableFile.file.size, (offset + 1) * chunkSize); 
    
           if (resumableFile.file.size - endByte < chunkSize && !forceChunkSize) { 
            endByte = resumableFile.file.size; 
           } 
           bytes = resumableFile.file[func](startByte, endByte); 
    
           fileReader.onloadend = function (e) { 
           // debugger; 
           var spark = SparkMD5.ArrayBuffer.hash(e.target.result);//hasher.append(e.target.result).end();// 
            //console.log(spark); 
            resumableFile.hashes.push(spark); 
    
            if (numChunks > offset + 1) { 
             computeHashes(resumableFile, offset + 1, fileReader); 
            } 
            if (numChunks == offset + 1) { 
             r.upload(); 
            } 
    
            resumableFile.resumableObj.opts.query = function (resumableFile, resumableObj) { 
            // debugger; 
             return { 'checksum': resumableFile.hashes[resumableObj] }; 
            }; 
    
           }; 
    
           fileReader.readAsArrayBuffer(bytes); 
    
    
    
          // Show progress pabr 
          $('.resumable-progress, .resumable-list').show(); 
          // Show pause, hide resume 
          $('.resumable-progress .progress-resume-link').hide(); 
          $('.resumable-progress .progress-pause-link').show(); 
          // Add the file to the list 
          $('.resumable-list').append('<li class="resumable-file-' + resumableFile.uniqueIdentifier + '">Uploading <span class="resumable-file-name"></span> <span class="resumable-file-progress"></span>'); 
          $('.resumable-file-' + resumableFile.uniqueIdentifier + ' .resumable-file-name').html(resumableFile.fileName); 
          // Actually start the upload 
    
         }); 
    
  2. Изменение уаг запрос

(typeof $.resumableObj.opts.query == "function") ? $.resumableObj.opts.query($.fileObj, offset) : $.resumableObj.opts.query;

так, что она возвращает текущее смещение/

+0

Я не undertstant второй стадии "Изменение уаг запрос". Вы можете мне помочь? –

+0

Второй шаг используется для хранения значения Hash в resumableObj.opts.query .... вы также можете изменить resumable.js и добавить хеширование при создании параметров – Taran

Смежные вопросы