0

ngCordovaの$ cordovaCaptureサービスからUploadCareにサウンドファイルをアップロードしようとしています。 uploadcare.fileFrom( 'object')は、アップロードエラーで失敗し続けます。私は公開鍵を持っています。私はそれを送信し、タグをつけて、document.getElementById( 'fileTag')。files [0]にアクセスしてファイルをアップロードすることができます。uploadcareファイルからngCordova MediaFile

$cordovaCapture.captureAudio() 
        .then(function (audioData) { 

         return uploadcare.fileFrom('object', audioData[0]) 
          .done(function (fileInfo) { 
           console.log(fileInfo); 

          }).fail(function (err) { 
           console.log(err); 

          }) 
        }) 

オーディオデータが[0]オブジェクトがこの

MediaFile { 
    end:0 
    fullPath:"file:/storage/emulated/0/Sounds/Voice%20002.m4a" 
    lastModified:null 
    lastModifiedDate:1481324751000 
    localURL:"cdvfile://localhost/sdcard/Sounds/Voice%20002.m4a" 
    name:"Voice 002.m4a" 
    size:49227 
    start:0 
    type:"audio/mpeg" 
} __proto__:File 

のように見える、私は問題は、オブジェクトがMediaFileがなく、ファイルであることかもしれないと思ったが、私は、他の1つをキャストいくつかの助けを使用することができます。 window.resolveLocalFileSystemUrlを使用して

FileEntry 
    filesystem:FileSystem 
    fullPath:"/Sounds/Voice 002.m4a" 
    isDirectory:false 
    isFile:true 
    name:"Voice 002.m4a" 
    nativeURL:"file:///storage/emulated/0/Sounds/Voice%20002.m4a" 
    __proto__:Entry 


File 
    end:49227 
    lastModified:1481324751000 
    lastModifiedDate:1481324751000 
    localURL:"cdvfile://localhost/sdcard/Sounds/Voice%20002.m4a" 
    name:"Voice 002.m4a" 
    size:49227 
    start:0 
    type:"audio/mpeg" 
    __proto__:Object 

()あなたは上記のファイルにオブジェクトを与えるが、それでも「アップロード」エラーで失敗しuploadcare上記ファイルエントリオブジェクトで終わります。

答えて

0

uploadcare.fileFromはネイティブファイルオブジェクトからファイルをアップロードします。試してみてください:

window.resolveLocalFileSystemURL(audioData[0].localURL,function(fileEntry){ 
fileEntry.file(function(file) { 
    uploadcare.fileFrom('object', file); 
    ... 
    }); 
}); 
1

ngCordova $ cordovaFileTransfer()を使用すると、オーディオファイルをアップロードすることができます。

 var fileName = filePath.split('/').pop(); 
     var uploadcareOptions = { 
      fileKey: "file", 
      fileName: fileName, 
      chunkedMode: false, 
      mimeType: 'audio/mp4', 
      params: { 
       "UPLOADCARE_PUB_KEY": "upload-care-public-key", 
       "UPLOADCARE_STORE": 'auto', 
       fileName: fileName 
      } 
     }; 
return $cordovaFileTransfer.upload('https://upload.uploadcare.com/base/', filePath, uploadcareOptions) 

重要な点は、ファイルを送信する際に、アップロード管理がそれ以外のイメージであると想定するため、MIMEタイプを指定することです。

関連する問題