2015-06-22 3 views
0

Я пытаюсь загрузить изображение из своего приложения на сервер, я хотел использовать плагин передачи файлов ngCordova, но я не доволен информацией о ходе, которую этот плагин дает вам, поэтому я решил пойти с Flowjs, но я не могу создать подходящий объект HTML5 File из файла url, который у меня есть. Это мой кодЗагрузка файла Flowjs - Ionic и ngCordova

window.resolveLocalFileSystemURL(photo, function(fileEntry){ 
    fileEntry.file(function(file){ 
     $scope.flow.addFile(file); 
     $scope.flow.upload(); 
     $scope.flow.on('fileProgress', function (file, chunk){ 
      console.log(file); 
      console.log(chunk); 
     }); 
     $scope.flow.on('error', function(a,b){ 
      console.log(a); 
      console.log(b); 
     }); 
    }); 
    }, function(err){ 
     console.log(err); 
}); 

Где фото путь к файловой системе для файла. Я получаю ошибку 400 (плохой запрос), когда я пытаюсь выполнить эту загрузку, я уверен, что серверная сторона верна, потому что я использую ее со многими другими приложениями Flowjs. Я думаю, что объект, возвращаемый fileEntry.file(), не является надлежащим файлом HTML5, возможно, создание Blob из файла url может решить проблему, но я не понимаю, как его создать. Я бы хотел, чтобы мой код работал, прежде чем пытаться создать Blob, но если это единственное решение, хорошо ...

ответ

0

Хорошо, я нашел решение, которое работает, не знаю, если это наилучшим образом, любые улучшения улучшены.

window.resolveLocalFileSystemURL(photo, function(fileEntry){ 
    fileEntry.file(function(file){ 
     var reader = new FileReader(); 
     reader.onload = function(){ 
      var blob = new Blob([reader.result], {type: 'application/octet-stream'}); 
      blob.name = 'image.jpg'; 
      $scope.flow.addFile(blob); 
      $scope.flow.upload(); 
      $scope.flow.on('fileProgress', function (file, chunk){ 
       console.log(file); 
       console.log(chunk); 
      }); 
      $scope.flow.on('error', function(a,b){ 
       console.log(a); 
       console.log(b); 
      }); 
     }; 
     reader.readAsArrayBuffer(file); 
    }); 
}, function(err){ 
    console.log(err); 
}); 
Смежные вопросы