存储在BLOB中 - 仅1 KB数据,不存储图像

时间:2014-09-08 01:38:42

标签: php android mysql file encode

我已将图像编码为基数为64

        Bitmap bitmapOrg= BitmapFactory.decodeFile(imagePath);
        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao);
        byte [] byarray = bao.toByteArray();
        String myimage=Base64.encodeBytes(byarray);

HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new
    HttpPost("http://10.1.1.5/connect/royal.php");

    try{
        List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>();

        nameValuePairs.add(new BasicNameValuePair("IMAGE",myimage));
        nameValuePairs.add(new BasicNameValuePair("FILENAME",trID));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        String responseStr = EntityUtils.toString(response.getEntity());
        Log.d("chddeck", responseStr);

        JSONObject jsonObj = new JSONObject(responseStr);
        int success = jsonObj.getInt("success");
        if (success == 1) {
            status="1";
        }else if (success==0){
            status="0";
        }
        }catch(Exception e){
        Log.e("log_tag", "Error in http connection "+e.toString());
        }

在php中,我存储为:

$base = $_REQUEST['image'];
$filename = $_REQUEST['filename'];
$buffer=base64_decode($base);
$path = "upload/".$filename.".jpg";
$handle = fopen($path, 'wb');
$numbytes = fwrite($handle, $buffer);
fclose($handle);

$query = $link->prepare("UPDATE transaction evidenceimage=?,evidencename=? WHERE transactionID =   '5'");
        $values = array($path, $filename);
        $query->execute($values);   
        $counts= $query->rowCount();
                if ($counts>0)
                {
                    $rowset = $query->fetchAll();
                    $response["comments"]=array();
                    $comments =array();
                    $response["success"]=1;
                }
                else{
                $response["success"]=0;
                }
echo json_encode($response);

问题是,图像完全上传到&#34;上传/&#34;服务器中的目录。但不存储在mysql中。在mysql中 - evidenceimage被设置为&#34; BLOB。在此查询之后,&#34; BLOB-filenameB&#34;存储在表中,似乎只有1 KB。 请任何人建议我做错了什么?

1 个答案:

答案 0 :(得分:0)

要获取Android程序中的图像,我认为您需要传递在localhost或服务器上传的图像路径。要在您的应用程序中获取图像,请尝试以下操作:

    UrlImageViewHelper.setUrlDrawable("your imageview name",
                    "your image path in localhost or server", 
                    "optional image to display if not available in your drawable folder",
                    "cache duration");

你可以在这里获取UrlImageViewHelper库: http://www.koushikdutta.com/UrlImageViewHelper