LoginSignup
2
1

More than 5 years have passed since last update.

cordova(Ionic1.3)+Laravelで画像のアップロードを実装する

Posted at

今回、仕事で画像のアップロード機能を持ったサイトを作ることになりました。
でも、作ってみると意外と大変でした…。

Cordovaでファイルアップロードを作る上であった問題点

・ファイルのアップロードには$cordovaFileTransferが使えない(←デプロイしようとするとcordovaFileに統合されたと書いてあるがレファレンスにも乗っていない
・そもそもcordovaFileで取得できるのはファイルパスだけ(FileやBlobではない)
・FileやBlobにするにはJavascriptでFileReaderを起動しなくてはいけないが、なぜかIonic1では動かなかった

解決方法

・ファイルの取得にはcordovaFileではなくcordovaCameraを使用する(※CordovaCameraのソースとしてCamera以外にphotoalbumを選択できるので、ローカルの写真をアップロードするならこれでOK)
・CordovaCameraのコールバックオプションをDataURLにする。
・DataURLにしたものをPHPのエンドポイントに向けて投げる。

laravel側での問題点

・どうにかしてDataURLをデコードして保存したい。

decodeの時に気をつけること

・”data:image/jpeg;64base,”で始まるが最初のこの文字列はデコード対象に入れてはいけない。
※ちなみに、”data…”の文字列を含めた形でブラウザのアドレスバーにそのまま貼り付けると、画像がブラウザに表示されます。つまり、データとしては"data…"の部分がないと成り立たない。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1