【发布时间】:2018-01-18 13:31:38
【问题描述】:
如何将大编码图像 base64 字符串从 android 发送到服务器。
朋友们,
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);}}
【问题讨论】:
-
似乎是服务器端(mysql)而不是客户端的问题
-
我同意 an_droid_dev
-
我尝试了数据类型 MediumText、LongText 和 Longblob,但它至少存储 8000 个字符,但我需要将超过 8000 个字符存储到服务器。
-
您发送的 http-request 类型是什么?获取还是发布?我怀疑这是一个网络服务器问题,而不是 DB,因为提到的数据类型支持大于 8K 的字符。您使用的是什么版本的 Mysql,以及什么网络服务器?
-
Webserver: apache 2.4.17 MYSQL VERSION : 10.1.9mariadb 使用 GET METHOD 通过 android 发送,在 php 中我们使用相同的 GET METHOD 来接收。