如何使用phonegap在json中添加图像文件?

时间:2015-04-28 14:59:52

标签: javascript json cordova camera

我在使用JSON保存图像时遇到问题。我可以使用以下代码访问移动摄像头:

var pictureSource;   // picture source
var destinationType; // sets the format of returned value 

// Wait for PhoneGap to connect with the device
//
document.addEventListener("deviceready",onDeviceReady,false);

// PhoneGap is ready to be used!
//
function onDeviceReady() {
    pictureSource=navigator.camera.PictureSourceType;
    destinationType=navigator.camera.DestinationType;
}

function onPhotoFileSuccess(imageData) {
  // Get image handle
  console.log(JSON.stringify(imageData));

  var smallImage = document.getElementById('smallImage');

  smallImage.style.display = 'block';

  smallImage.src = imageData;
  location.href = "#pageone";
}

function capturePhotoWithFile() {
    navigator.camera.getPicture(onPhotoFileSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI });
}

function onFail(message) {
  alert('Failed because: ' + message);
}

我的问题是我有一个带有文本的表单,应该拍摄并保存图片。这是我的代码,它添加并保存没有图像的表单:

function Add(){
		var client = JSON.stringify({
			repairNum : $("#repairNum").val(),
			fname    : $("#fname").val(),
			lname  : $("#lname").val(),
			address : $("#address").val(),
		});
			jewelryRepair.push(client);
			localStorage.setItem("jewelryRepair", JSON.stringify(jewelryRepair));
			alert("The data was saved.");
			return true;
	}

我的问题是,如何在此函数add()中插入图像文件?非常感谢!

1 个答案:

答案 0 :(得分:0)

假设在Add()之后调用onPhotoFileSuccess(),那么您可以在Add()函数中执行此操作(请参见下文)。它将是一个数据URL - 意味着url具有在其中编码的所有图像数据。

function Add(){
        var client = JSON.stringify({
            repairNum : $("#repairNum").val(),
            fname    : $("#fname").val(),
            lname  : $("#lname").val(),
            address : $("#address").val(),
            photoData: $("#smallImage").attr("src")
        });
            jewelryRepair.push(client);
            localStorage.setItem("jewelryRepair", JSON.stringify(jewelryRepair));
            alert("The data was saved.");
            return true;
    }