###前提・実現したいこと
現在、monaca(2.0.0-rc.1)を利用してアプリを開発中、angularjs(1.4.3)を利用しています。
navigator.camera.getPicture()で画像を取得し、
imgタグで取得の度に表示を行い、
保存用の関数を実行することで、fileEntryを用いて保存を行いたい。
###発生している問題・エラーメッセージ
一度保存処理を行った後(この時点で保存処理成功の関数は実行されているが、保存はされていない。)、
もう一度画像をiPhoneのフォトライブラリから選択すると、/tempフォルダ内に保存されている古い画像が表示される。
*同様の処理を行っている箇所が1つあります。差分はimgタグのidのみです。
*保存パスは既に初期化されており、画像が保存されている。選択した画像を保存する際、この画像を上書きしたい。
*構成の問題から、画像を選択する処理と、画像を保存する処理は別コントローラーにある。
*画像の保存先は既にrequestFileSystemでPERSISTENTを取得しており、localSystem('local_path')に保存してあります。
###該当のソースコード
<!-- page.html --> <略> <img id="icon_img" src =""> <input ng-click="selectImage();" value="ファイルを選択してください" type="button"> <略> <!-- select-controller.js --> <略> document.getElementById("icon_img").src = localStorage.getItem('local_path') + 'icon.jpg'; $scope.selectImage = function(){ navigator.camera.getPicture(function(imageData){ if(typeof(imageData) != 'undefined' && imageData != '') { document.getElementById("icon_img").src = imageData; } }, function(e){ console.log('error'); },{ quality: 50, destinationType: Camera.DestinationType.FILE_URI, sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY }); } <!-- controller.js --> <略> var dir; requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ dir = fileSystem.root; },function(e){ console.log('error'); }); var imageData = document.getElementById("icon_img").src; document.getElementById('test').innerHTML = imageData; resolveLocalFileSystemURI(imageData,function(fileEntry){ fileEntry.moveTo(dir,'icon.jpg',function(entry){ console.log('move image file is success'); },function(e){ console.log('error'); }); },function(e){ console.log('error'); }); <略>
###試したこと
tempファイルの削除処理を画像の保存後に実行した。
directoryEntryで下層のfileEntry全てにremove()を行ったが、
過去のtempファイルは削除出来るものの、保存を行った画像のtempファイルだけ
残ってしまい。次回画像選択時、その画像が表示されてしまう。
###補足情報(言語/FW/ツール等のバージョンなど)
monaca(2.0.0-rc.1)
angularjs(1.4.3)
あなたの回答
tips
プレビュー