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
しかし、私がそのパスに行くと、その名前の画像が存在し、有効です。私は何か間違っているのですか?
ダミーサーバーhttp://httpbin.org/postで正確なコードをテストしましたが、進捗状況が返ってきて、うまくいくようです... –