2014-02-19 3 views
0

Я развиваю гибрид с помощью phonegap 3.3. Я использую плагин камеры для захвата изображения и сохранения в фотоальбоме, который отлично работает. Позже я должен прочитать файл изображения из хранилища устройств.phonegap android не умеет читать файл изображения

Я использую следующий код.

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, failFS); 
function gotFS(fileSystem){ 
    fileSystem.root.getFile(imageData, {create: true}, gotFileEntry, fail); 
} 
function gotFileEntry(){ 
    fileEntry.file(gotFile,fail); 
} 
function gotFile(file){ 
    alert(file.getParent().fullPath); 
} 

Я получаю ошибку в первой строке. Это дает

FileError.ENCODING_ERR

Я не уверен, что я делаю неправильно здесь. После этого мне нужно перейти в другой каталог с новым именем. Может ли кто-нибудь помочь мне исправить.

Я использую плагин камеры для захвата изображений и плагинов файлов для чтения файлов и каталогов.

--Sridhar

+0

можно сказать, у меня есть то, что данные в «ImageData» поле? –

+0

@BhaveshParekh imageData - полный путь к файлу изображения –

+0

Вы проверили мой ответ ниже. в том, что я использовал window.resolveLocalFileSystemURI вместо window.requestFileSystem –

ответ

0

Вы можете попробовать ниже код, чтобы захватить и скопировать изображение

var pictureSource; 
var destinationType; 

var FileFolder = ""; 
var FileName = ""; 

var obj_imageCapture = { 
    capturePicture:function(imgFolder,imgName) 
    { 

     var image = imgFolder + imgName; 

     FileFolder = imgFolder; 
     FileName = imgName; 

     pictureSource = navigator.camera.PictureSourceType; 
     destinationType = navigator.camera.DestinationType; 

     navigator.camera.getPicture(obj_imageCapture.onPhotoDataSuccess1, obj_imageCapture.onFail, {quality: 50, destinationType: destinationType.FILE_URI , saveToPhotoAlbum: true }); 

    }, 
    onPhotoDataSuccess1:function(imageData){ 

    obj_imageCapture.createFileEntry(imageData); 


    }, 
    createFileEntry:function(imageURI) { 
     window.resolveLocalFileSystemURI(imageURI, obj_imageCapture.copyPhoto, obj_imageCapture.onFFail); 
    }, 
    copyPhoto:function(fileEntry) { 
    try 
    { 


     var ext = fileEntry.fullPath.substr(fileEntry.fullPath.lastIndexOf('.')); 



     var imageN = ""; 

     if(FileName.indexOf('.') > 0) 
     { 
      imageN = FileName.substr(0,FileName.lastIndexOf('.')) + ext; 
     } 
     else 
     { 
      imageN = FileName + ext; 
     } 




     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) { 
           fileSys.root.getDirectory(FileFolder, {create: true, exclusive: false}, function(dir) { 
                  fileEntry.copyTo(dir, imageN, obj_imageCapture.onCopySuccess, obj_imageCapture.onFFail); 
                  }, obj_imageCapture.onFFail); 
           }, obj_imageCapture.onFFail); 
    } 
    catch(ex) 
    { 
     alert(ex.message); 
    } 

    }, 
    onCopySuccess:function(entry) { 


     var smallimage = document.getElementById("myimage"); 
     smallimage.style.display = "block"; 
     smallimage.src = entry.fullPath + "?rand=" + Math.random(); 



    }, 
    onFFail:function(message) 
    { 
     alert("Error in photo : " + message.message); 
    } 
}; 

Приведенный выше код может полезно для вас

Смежные вопросы