You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemmionic5/Mohem/plugins_/com-badrit-base64/src/android/Base64Plugin.java

92 lines
2.1 KiB
Java

/**
*
* Phonegap Base64 plugin
*
* Version 1.0
*
* Hazem Hagrass 2013
*
*/
package com.badrit.Base64;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.text.Html;
import android.util.Base64;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.LOG;
public class Base64Plugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("encodeFile".equals(action)) {
try {
JSONObject parameters = args.getJSONObject(0);
if (parameters != null) {
String base64String = encodeFile(parameters.getString("filePath"));
callbackContext.success(base64String);
}
} catch (Exception e) {
}
return true;
}
return false;
}
private String encodeFile(String filePath) {
String imgStr = "";
try {
Uri _uri = Uri.parse(filePath);
if (_uri != null && "content".equals(_uri.getScheme())) {
Cursor cursor = cordova
.getActivity()
.getContentResolver()
.query(_uri,
new String[] { android.provider.MediaStore.Images.ImageColumns.DATA },
null, null, null);
cursor.moveToFirst();
filePath = cursor.getString(0);
cursor.close();
} else {
filePath = _uri.getPath();
}
File imageFile = new File(filePath);
if (!imageFile.exists())
return imgStr;
byte[] bytes = new byte[(int) imageFile.length()];
FileInputStream fileInputStream = new FileInputStream(imageFile);
fileInputStream.read(bytes);
imgStr = Base64.encodeToString(bytes, Base64.DEFAULT);
imgStr = "data:image/*;charset=utf-8;base64," + imgStr;
} catch (Exception e) {
return imgStr;
}
return imgStr;
}
}