如何在android中使用API将base64编码的图像保存到MYSQL数据库

如何在android中使用API将base64编码的图像保存到MYSQL数据库,android,mysql,bitmap,Android,Mysql,Bitmap,onActivityResult方法中的变量和bitmapToBase64(位图)方法变量不能在之外访问,它在android中通过url时在Mysql数据库中存储空值 例如:在下面的代码中,我将编码后的图像base64String存储在encoderes中。 但在尝试从方法外部访问时,以及在通过url传递编码字符串时。 它在数据库中另存为null public String bitmapToBase64(Bitmap bitmap) { ByteArrayOutputStream byteArr

onActivityResult
方法中的变量和
bitmapToBase64(位图)
方法变量不能在之外访问,
它在android中通过url时在Mysql数据库中存储空值

例如:在下面的代码中,我将编码后的图像base64String存储在encoderes中。
但在尝试从方法外部访问时,以及在通过url传递编码字符串时。 它在数据库中另存为null

public String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
encoderes = Base64.encodeToString(byteArray, Base64.DEFAULT);
encodedImage.setImgStr(encoderes);
encodestr.setText(encoderes);

return encoderes; }
编码代码片段

   @Override 
   public void onActivityResult ( int requestCode, int resultCode, Intent 
   data)
   {
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
    Uri imageUri = data.getData();
    imageView.setImageURI(imageUri);
    imageView.buildDrawingCache();
    Bitmap bmap = imageView.getDrawingCache();
    bitmapToBase64(bmap);} else if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK ) {
    Uri imageUri = data.getData();
    imageView.setImageURI(imageUri);
    imageView.buildDrawingCache();
    Bitmap bmap = imageView.getDrawingCache();
    bitmapToBase64(bmap);

    //Bitmap image = (Bitmap) data.getExtras().get("data");

} }                                                                    
public String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
encoderes = Base64.encodeToString(byteArray, Base64.DEFAULT);
encodedImage.setImgStr(encoderes);
encodestr.setText(encoderes);

return encoderes; }
使用此方法:

public static String convertToBase64(Bitmap bitmap) {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.setDensity(IMAGE_DENSITY);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, byteArrayOutputStream);
        byte[] byteArray = byteArrayOutputStream.toByteArray();
        setDpiInfo(byteArray, IMAGE_DENSITY);
        return Base64.encodeToString(byteArray, Base64.NO_WRAP);
    }
用这个

  public String getEncoded64ImageStringFromBitmap(Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
    byte[] byteFormat = stream.toByteArray();
    // get the base 64 string
    String imgString = Base64.encodeToString(byteFormat, Base64.NO_WRAP);

    return imgString;
}

使用返回的值发送到服务器

为什么不将其另存为blob?与b64相比,大小没有增加,性能更好。是否在mysql数据库中存储空值..?是否在mysql数据库中存储空值。。?