2017-08-10 69 views
0

如何將大型編碼圖像base64字符串從android發送到服務器。如何發送大型編碼base64圖像字符串從Android到Mysql

喜的朋友,

By default String value within 8000 characters is uploading to server. 

But Encoded Image base64 String length is more than 8000 characters. 

超過8000個字符沒有從Android的上傳到mysql數據庫。

請給我一個解決方案..!

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // Check which request we're responding to 
    if (requestCode == RESULT_LOAD_IMAGE) { 
     // Make sure the request was successful 
     // Log.d("Vicky","I'm out."); 

     display(requestCode,resultCode,data); 

    } 
} 

public void display(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && data != null && data.getData() != null) { 
     Uri selectedImageUri = data.getData(); 
     Bitmap selectedImageBitmap = null; 
     try { 
      selectedImageBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), selectedImageUri); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     selectedImage.setImageBitmap(selectedImageBitmap); 
     ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
     selectedImageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); 
     byte[] byteArrayImage = byteArrayOutputStream.toByteArray(); 
     encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);}} 
+0

似乎是一個問題,服務器端(MySQL的),而不是客戶端 –

+0

我an_droid_dev –

+0

同意我試過數據類型MEDIUMTEXT,長文本和LONGBLOB但是,它存儲最低8000個字符,但我需要超過8000個字符存儲到服務器。 –

回答

0

只是檢查你的數據庫結構圖像領域有數據類型LONGBLOB像下面

like this

+0

我嘗試使用longblob,longText,mediumtext,但它不會存儲超過8000個字符,但它只能存儲在8000個字符之內。請給我一些其他的解決方案..! –

0

您的數據類型更改爲VARCHAR。它的最大lenght它是圍繞65000你可以找到更多信息here

ALTER TABLE tablename MODIFY columnname VARCHAR(65000); 
+0

我嘗試了65000,但它顯示一些錯誤,所以我用64000,但它也沒有工作。 –

1

存放在一個文件中的圖像並保存圖像的路徑在你的數據庫。

+0

OP想將圖像發送到遠程服務器,而不是將其存儲在本地的手機上 – Yazan

+0

是的,你有任何源代碼可以請你發給我..!我是新來的android .. –

+0

你在服務器端或後端使用哪種語言? –

相關問題