【问题标题】:Android java post image limits 64 kb mysql blob [duplicate]Android java post image限制64 kb mysql blob [重复]
【发布时间】:2016-03-06 20:09:24
【问题描述】:

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

    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 类型。 发送和不发送流长度。

【问题讨论】:

标签: php android mysql base64 httpurlconnection


【解决方案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 的大小限制

【讨论】:

  • 使用 longblob。非常感谢!
猜你喜欢
  • 2012-08-16
  • 2012-05-08
  • 2017-08-14
  • 1970-01-01
  • 2013-03-10
  • 2011-03-11
  • 1970-01-01
  • 2018-04-20
  • 2018-01-22
相关资源
最近更新 更多