0
에 의해 점점 경로를 사용하여 파일을 읽을 수 없습니다. photolibrary에서 그림을 선택해야하는데, localStorage에서 선택한 그림의 경로를 저장해야합니다.이 경우 destinationType을 FILE_URI로 사용했는데 다음을 사용하여 선택한 그림을 base64 문자열로 변환하는 데 도움이되는 다른 함수를 호출해야합니다. 파일 판독기의 속성 인 readAsDataURL을 사용하여 해당 문자열을 서버에 업로드하십시오. 첫 번째 부분은 정상적으로 작동하지만 두 번째 부분이 작동하지 않으면이 문제를 해결하는 데 도움이됩니다. 내가 내 질문에 대한 답을 가지고 코드에 따라내가 개발 폰갭 응용 프로그램에 새로운 오전 FILE_URI
<button class="button" onclick="uploadImage();">From Photo Library</button>
<img style="display:none;width:60px;height:60px;" id="largeImage" src="" />
<button class="button" onclick="syncData();">Sync Data</button>
내 Script.js은 내 HTML 페이지가
,
var pictureSource; // picture source
var destinationType;
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady() {
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
var pictureSource = navigator.camera.PictureSourceType;
var destinationType = navigator.camera.DestinationType;
function uploadImage(){
alert('called upload pic');
//Using library
navigator.camera.getPicture(uploadPhoto, onFailcapturePhoto, { quality: 50,
destinationType: destinationType.FILE_URI, sourceType: pictureSource.PHOTOLIBRARY});
}
function onFailcapturePhoto(message) {
alert("Message = " + message);
}
function uploadPhoto(imageURI) {
if(!localStorage.imageArray) {
var imageArray = [];
imageArray.push(imageURI);
localStorage.setItem('imageArray',JSON.stringify(imageArray));
alert(JSON.stringify(imageArray));
} else {
var imagefile = JSON.parse(localStorage.imageArray);
imagefile.push(imageURI);
localStorage.setItem('imageArray',JSON.stringify(imagefile));
alert(JSON.stringify(imagefile));
}
var largeImage = document.getElementById('largeImage');
largeImage.style.display = 'block';
largeImage.src = imageURI; // here i can display the image
}
function syncData() {
var reader = new FileReader();
var selectedImageArray = [];
function readFile(index) {
alert('in read file'); // here i am getting alert
if(index >= JSON.parse(localStorage.imageArray).length) return;
var file = JSON.parse(localStorage.imageArray)[index];
alert('file=='+file); // here i am getting path
reader.onloadend = function(e) {
// get file content
alert('in loadend');
selectedImageArray[index] = e.target.result;
alert('image data==:>'+selectedImageArray[index])
readFile(index+1);
}
if(file) {
alert('going to read'); // i got alert here, after this line i don't get anything
reader.readAsDataURL(file);
alert('reading finished');
} else {
alert('Your Browser does not support File Reader..');
}
}
readFile(0);
alert('before clear'+JSON.stringify(localStorage.imageArray));
localStorage.clear();
alert('after clear'+JSON.stringify(localStorage.imageArray));
}
감사 & 감사합니다, 무랄리 Selvaraj
왜 base64로 직접 사진을 촬영하지? 나는 이것이 카메라 플러그인을 통해 가능하다고 생각 했는가? – Sithys
@Sithys 내가 걸릴 수 있지만 시간 메모리가 응용 프로그램에 손상을 일으킬 여러 이미지를 선택해야합니다. –