晚了一點,但你可以使用的cordova-plugin-file代替科爾多瓦,插件,文件路徑的建議在Cordova documentation:
navigator.camera.getPicture(function cameraSuccess(imgUri) {
uploadPicture(imgUri);
}, function cameraError(error) {
console.debug("Unable to obtain picture: " + error, "app");
});
function uploadPicture(imgUri) {
var uploadUrl = ...;
var success = ...;
var fail = ...;
var options = ...;
var fileEntry = getFileEntry(imgUri);
var fileTransfer = new FileTransfer();
fileTransfer.upload(fileEntry.toURL(), encodeURI(uploadUrl), success, fail, options);
}
function getFileEntry(imgUri) {
window.resolveLocalFileSystemURL(imgUri, function success(fileEntry) {
return fileEntry;
}, function() {
// If don't get the FileEntry (which may happen when testing
// on some emulators), copy to a new FileEntry.
return createNewFileEntry(imgUri);
});
}
function createNewFileEntry(imgUri) {
window.resolveLocalFileSystemURL(cordova.file.cacheDirectory, function success(dirEntry) {
// JPEG file
dirEntry.getFile("tempFile.jpeg", { create: true, exclusive: false }, function (fileEntry) {
return fileEntry;
}, onErrorCreateFile);
}, onErrorResolveUrl);
}
注:未測試...
你有沒有檢查過https://github.com/apache/cordova-plugin-camera? 這個插件有一個選項來返回文件路徑,它可以用來輕鬆地將文件傳輸到服務器。順便說一句你使用離子框架?如果是這樣的話,請嘗試使用這個插件http://ngcordova.com/docs/plugins/capture/它的記錄! – 404
@ 404感謝您的評論,但cordova-plugin-camera是我現在使用的插件(應該提到這一點)。 是的我正在使用離子,但ngCordova /../捕獲不提供從設備存儲加載文件的方法。根據文檔,它只能從相機記錄新文件。 – Ammul