Как преобразовать объект MediaFile в объект File? - PullRequest
0 голосов
/ 17 сентября 2018

Я занимаюсь разработкой ионного приложения в реальном времени.Для захвата аудио / изображений я работаю с плагином Cordova Media Capture.Я мог бы отправлять через API-интерфейс post-multipart-form-data объект файла MediaFile (mediaFile). Мне нужно преобразовать JS-объект MediaFile в файловый объект JS (в составном сообщении Api принимается только файл, а не MediaFile)

$scope.captureImage = function() {
      navigator.device.capture.captureImage(captureSuccessImage,captureErrorImage);
}

function captureSuccessImage(mediaFiles) {

  var i, mediaFile, len;

  for (i = 0, len = mediaFiles.length; i < len; i += 1) {

      mediaFile = mediaFiles[i];


  }

}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

В моем случае мне действительно нужно было конвертировать MediaFile в файл, чтобы заставить работать API-интерфейс vimeo.Поскольку MediaFile - это файл:

  for (i = 0, len = mediaFiles.length; i < len; i += 1) {

      mediaFile = mediaFiles[i];

      var file = new File(mediaFile.name, mediaFile.localURL, mediaFile.type, 
                          mediaFile.lastModifiedDate, mediaFile.size);
  }
0 голосов
/ 18 сентября 2018

Это также будет поддерживать медиа путь.Я использую этот код для передачи файлов.пожалуйста, посмотрите.

 postFile(imageData, id) {
let base64Image = imageData;
this.filePath.resolveNativePath(imageData)
  .then(filePath => base64Image)
  .catch(err => console.log(err));
console.log(base64Image);
const fileTransfer = this.transfer.create();
let imageName = base64Image;
var options: FileUploadOptions = {
  fileKey: "file",
  fileName: imageName.substr(imageName.lastIndexOf('/') + 1),
  mimeType: "multipart/form-data",
  chunkedMode: false,
  params: { 'id': id },
  headers: { 'Authorization': 'Bearer ' + localStorage.getItem("token"),  'Connection': "close" }
}
return new Promise((resolve, reject) => {
  fileTransfer.upload(imageName, encodeURI(this.MainURL + "/UploadMedia"), options)
    .then((data) => {
      console.log(data);
      resolve(200);
    }, (err) => {
      console.log(err);

      reject(500);
    })
})


}
...