2016-05-23 6 views
0

NativeScriptカメラモジュールで写真を撮ってから、nativescript-background-httpでアップロードしようとしています(これがアップロードの唯一の方法だと思います。この時点でのNS)。私はiOSシミュレータを使用していますが、Androidエミュレータでもエラーが発生します。NativeScript:カメラtakePictureとnativescript-background-httpでアップロード

カメラプラグインはうまく動作し、画像をファイルに保存して保存します。しかし、その後、そのパスから画像をアップロードするのに問題があります。ここで

は私のコードです:

import cameraModule = require('camera') 
import imageModule = require('ui/image') 
import enumsModule = require('ui/enums') 
import fsModule  = require('file-system') 
import bgHttpModule = require('nativescript-background-http') 

const options = { width: 300, height: 300, keepAspectRatio: true } 
const format = enumsModule.ImageFormat.jpeg 

cameraModule.takePicture(options).then(imageSource => { 
    let contentType = `image/${format}` 
    let savePath = fsModule.knownFolders.documents().path 
    let fileName = 'img_' + new Date().getTime() + '.' + format 
    let filePath = fsModule.path.join(savePath, fileName) 

    if (imageSource.saveToFile(filePath, format)) { 
     var session = bgHttpModule.session('image-upload') 

     var options = { 
      url: 'http://192.168.99.100:8003', 
      method: 'POST', 
      headers: { 
       'Content-Type': 'application/octet-stream', 
       'File-Name': fileName 
      }, 
      description: '{ \'uploading\': ' + fileName + ' }' 
     } 

     let task = session.uploadFile(filePath, options) 

     task.on('progress', logEvent) 
     task.on('error', logEvent) 
     task.on('complete', logEvent) 

     function logEvent(e) { 
      console.log(e.eventName) 
     } 
    } 
}) 

私が手にエラーがある:

アプリケーションエラー:エラー/ユーザー/ユーザー/ライブラリ/開発/ CoreSimulator /デバイス/ 11C75134-AC52-46B8-87F6 -58A61B8A1E0C/data/Containers/Data/Applicatio ... 538.jpegは有効なファイルではありません:// URL undefined

しかし、私がそのパスに行くと、その名前の画像が存在し、有効です。私は何か間違っているのですか?

+0

ダミーサーバーhttp://httpbin.org/postで正確なコードをテストしましたが、進捗状況が返ってきて、うまくいくようです... –

答えて

1

私は、「ファイル://」を付加することで、このエラーを取り除くことができたことは、エミュレータで動作しますが、私はまだ実際のデバイス上でそれをテストしていないタスクライン

var task = session.uploadFile("file://" + this.filePath, request); 

に。

+0

これはプラグインの問題であるようです:https:// github。 com/NativeScript/nativescript-background-http/issues/15そして、うん、あなたは正しいことが欠けているものです。 – terreb

関連する問題