質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

受付中

monacaで画像の保存がうまくいかない

sarada661
sarada661

総合スコア16

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0回答

0リアクション

0クリップ

3164閲覧

投稿2017/01/12 12:57

###前提・実現したいこと
現在、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)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。