图像可以';无法在android中保存validable

图像可以';无法在android中保存validable,android,Android,我正在使用PHP将图像保存到mysql数据库。图像已到达保存文件和数据库,但格式无效。无法打开。如何以正确的方法存储图像。告诉我一些方法。这是我的密码 Bitmap bm = ShrinkBitmap(picturePath, 300, 300); resizedbitmap = Bitmap.createScaledBitmap(bm, 100, 100, true); ByteArrayOutputStream baos=new Byte

我正在使用PHP将图像保存到mysql数据库。图像已到达保存文件和数据库,但格式无效。无法打开。如何以正确的方法存储图像。告诉我一些方法。这是我的密码

 Bitmap bm = ShrinkBitmap(picturePath, 300, 300);
            resizedbitmap = Bitmap.createScaledBitmap(bm, 100, 100, true);

            ByteArrayOutputStream baos=new  ByteArrayOutputStream();
            resizedbitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
            byte [] arr=baos.toByteArray();
            imageSave = Base64.encodeToString(arr, Base64.DEFAULT);

            img_Photo.setImageBitmap(resizedbitmap);



 Bitmap ShrinkBitmap(String file, int width, int height){

     BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
        bmpFactoryOptions.inJustDecodeBounds = true;
        Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);

        int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
        int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);

        if (heightRatio > 1 || widthRatio > 1)
        {
         if (heightRatio > widthRatio)
         {
          bmpFactoryOptions.inSampleSize = heightRatio;
         } else {
          bmpFactoryOptions.inSampleSize = widthRatio;
         }
        }

        bmpFactoryOptions.inJustDecodeBounds = false;
        bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
     return bitmap;
    }



 postParameters.add(new BasicNameValuePair("photo", imageSave));
编辑:这里是PHP

 if(isset($_POST["photo"]) && !is_null($_POST["photo"]))
                    {
                        $data = mysql_real_escape_string($_POST["photo"]);   
                        //create folder
                        if(!file_exists('User_Photo/'))
                        {
                            mkdir('User_Photo/', 0777, true);
                        }
                        //upload image
                        define('UPLOAD_DIR', 'User_Photo/');
                        $img = $data;
                        $img = str_replace('data:image/png;base64,', '', $img);
                        $img = str_replace(' ', '+', $img);
                        $data = base64_decode($img);
                        $file = UPLOAD_DIR . $str . '.png';
                        $query .= "       , v_photo";
                        $value .= "       , '".$file."'";
                    }
                    else
                    {
                        $flag = true;
                    }

将图像保存为base64编码字符串。你怎么知道它们是无效的,你能给我们看一下解码码吗?我已经发布了解码文件。收缩位图(picturePath,300300);如果我正确理解了您的代码,您可以在Android应用程序中打开一个图像,调用
ShrinkBitmap
,然后将其发布到服务器。您如何知道它们的格式无效?我猜你会在PHP的网页上显示它们,这是我要求的代码。图像到达保存的文件,但当我打开图像时,它只显示黑色图像。我没有保存黑色图像,但我不知道他们为什么更改黑色图像。后参数。添加(新的BasicNameValuePair(“photo”,imageSave));这是保存PHP的部分。