こんにちは。
monacaとニフティモバイルバックエンドを使ってアプリを作っています。
フォトギャラリーを表示するアプリとそれを管理するアプリを作っています。
別の方が管理するアプリ側の画像をアップロードする部分を書いていたのですが、
数MBあるスマホの画像をそのままアップロードするのでフォトギャラリー側での表示時に
とても時間がかかり実用的ではありません。。
アップロードする前に画像の比率はそのままにリサイズしてアップロードできれば、、と思っています。
その他にも良い案があればご教授いただけると幸いです。
以下がアップロードしているコードの一部です。
よろしくお願い致します。
// 画像選択・カメラ起動
$scope.showDialog = function(val) {
if (val == 0) {
// 画像を選択して取得
var opt = {
quality: 50,
encodingType: Camera.EncodingType.JPEG,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY
};
} else {
// 画像をカメラで撮って取得
var opt = {
quality: 50,
encodingType: Camera.EncodingType.JPEG,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA
};
}
navigator.camera.getPicture(onSuccess, onFail, opt); }; function onSuccess(data) { $scope.img64 = data; document.getElementById('new_img').src = 'data:image/jpeg;base64,' + data; } function onFail() { // エラー } // 追加 $scope.add = function() { if (document.getElementById('new_img').src != "images/no-image.png") { var file = toBlob($scope.img64); var fileNam = ImgBaseNam + no + ".jpg"; var ncmbFile = new NCMB.File(fileNam, file); ncmbFile.save().then(function() { // アップロード成功 var Obj = NCMB.Object.extend(imgClassNam); var obj = new Obj(); var Today = new Date().toLocaleDateString(); obj.save(null, { success: function(obj) { alert("データを保存しました。"); }, error: function(obj, error) { alert("データを保存に失敗しました。, error code: " + error.message); } }); }, function(error) { // アップロード失敗 alert(error.message); }); } };
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。