Android java post image限制64 kb mysql blob

时间:2015-12-02 14:28:00

标签: php android mysql base64 httpurlconnection

我正在尝试将使用我的相机拍摄的图像发布到将脚本保存到MySQL表格的PHP脚本中。

    Bitmap bm = BitmapFactory.decodeFile(imageurl);

    StringBuilder postDataBuilder = new StringBuilder();
    postDataBuilder.append("[Notas]").append("=").append(URLEncoder.encode(etReclamo.getText().toString(), Constants.UTF8));
    postDataBuilder.append("&").append("image").append("=").append(URLEncoder.encode(getStringImage(bm), Constants.UTF8));

    final byte[] postData = postDataBuilder.toString().getBytes(Constants.UTF8);

    new AsyncTask(){

        @Override
        protected Object doInBackground(Object[] params) {
            try{
                URL url = new URL(Constants.URL_RECLAMO);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setDoOutput(true);
                conn.setUseCaches(false);
                conn.setFixedLengthStreamingMode(postData.length);
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");

                OutputStream out = conn.getOutputStream();
                out.write(postData);

                InputStream is = conn.getInputStream();
                resultado = IOUtils.toString(is);

                out.close();

                int status = conn.getResponseCode();
                if (status == 200) {
                    handler.sendEmptyMessage(RESPUESTA_HTTP_EXITO);
                } else {
                    handler.sendEmptyMessage(RESPUESTA_HTTP_ERROR);
                    throw new IOException("Request failed with error code "
                            + status);
                }

            } catch (IOException e) {
                Log.e("RECLAMO", "IOError");
            }
            return null;
        }
    }.execute(null, null, null);
}

发送字符串没有问题,但我不能存储超过64KB。 为什么?

我在MySQL中尝试过BLOB和TEXT类型。 发送而不发送流长度。

1 个答案:

答案 0 :(得分:1)

RTM? http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

Data Type      Storage Requirement
Blob, Text     L + 2 bytes, where L < 2**16

Blob是一个16位字段,这意味着它有64k的大小限制