2017-01-28 2 views
0

Привет В настоящее время я разрабатываю ионное приложение с firebase. Я пытаюсь загрузить несколько файлов с изменением размера.canvas.toDataURL() возвращает те же данныеURL

Это связано с тем, что при вызове метода изменения размера входное изображение отличается, но как только я заканчиваю загрузку, он заканчивает загрузку дублированных изображений (последнее изображение массива).

I console.log ed dataURL из этого каждый раз, когда он изменяет размер и обнаружил, что DataURL всегда одинаковый.

следующий код - загрузить несколько файлов.

multipleUpload: function(key, folder, files, targetWidth) { 
    var q = $q.defer(); 
    var ct = Date.now(); 
    var urls = []; 

    var recursive = function (n, args) { 
     var arg = args[n]; 
     ImageService.resize(arg.file, targetWidth) 
     .then(function(file) { 
     upload(ct + '' + n + key, folder + '/' + key, file, CONFIG.MESSAGE.FILE_UPLOAD + (n + 1) + '번 파일') 
     .then(function(url) { 
      urls.push(url); 
      if (++n < args.length) { 
      recursive(n, args); 
      } else { 
      q.resolve(urls); 
      } 
     }), function(error) { 
      q.reject(error); 
     }; 
     }) 
    } 
    recursive(0, files); 

    return q.promise; 
    }, 

После кода изменения размера метод

resize: function(file, targetWidth) { 
    var q = $q.defer(); 
    // Resizing Image 
    var img = new Image(); 
    img.setAttribute('crossOrigin', 'anonymous'); 
    img.onload = function(){ 
     var canvas = document.createElement("canvas"), 
     ctx = canvas.getContext("2d"); 
     canvas.width = targetWidth; 
     canvas.height = canvas.width * (img.height/img.width); 
     ctx.drawImage(this, 0, 0, canvas.width, canvas.height); 
     // Data URL to BLOB 
     var dataURL = canvas.toDataURL(); 
     console.log(dataURL); // Returns same dataURL all the time. 
     dataURLtoBlob(dataURL, Date.now()) 
     .then(function(blob) { 
     q.resolve(blob); 
     }); 
    }; 
    img.src = file; 
    return q.promise; 
    }, 

ответ

0

Во-первых, я нашел одно странно, что он работал отлично на КСН но андроида.

Я начал копать опции плагина и отключил allow-edit, тогда он отлично работает. Я считаю, что это проблема из плагина.

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