我是移动应用程序的新手,正在开发一个需要上传照片并存储到服务器的应用程序。
我有如下的JS代码首先将照片存储到本地存储中,然后使用getitem获取该照片并转换为base64,最后使用PHP使用图像转换技术(base64_decode)将其移动到服务器
function saveImage(photoURI,task_id) {
alert("in save image");
//remove the old photo if exists
var old_photoURI;
if (old_photoURI = loadImage(task_id)) {
deleteImage(old_photoURI,task_id);
}
//update the local database
localStorage.setItem("tmp_photo_"+task_id, photoURI);
return true; }
获取存储在本地存储中的图像的代码
function loadImage(task_id) {
alert("in load image")
//read the current photo
return localStorage.getItem("tmp_photo_"+task_id); }
下面的代码是将图像转换为base64
var dt = new Date();
var timeupload = dt.getDate() + "" + (dt.getMonth()+1) + "" + dt.getFullYear() + "" + dt.getHours() + "" + dt.getMinutes() + "" + dt.getSeconds();
imgname = task_id+"_"+timeupload+'.jpeg';
alert(loadImage(task_id) + "load image task id");
var filesSelected = loadImage(task_id);
alert(filesSelected + "files selected");
alert(filesSelected.length + "files lenth");
if (filesSelected.length > 0)
{
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = document.createElement('img');
newImage.src = srcData;
base64_string = newImage.outerHTML;
alert(srcData + "srouce data now");
}
fileReader.readAsDataURL(fileToLoad);
}
最后将这个 srcData 值传递给 Service,它具有再次转换为图像并将其保存到服务器上的文件夹中的所有功能。
我有保存功能(将签名上传到服务器),可以完美地使用相同的代码。