从Android到SQL的base 64字符串不解码并使用php存储在文件夹中


base 64 string from Android to SQL not decoding and store in folder using php

我正在将base64编码图像从Android发送到SQL服务器数据库,但图像未存储在DB文件夹中。下面提到了将图像转换为 base64 字符串的 android 步骤。

    public String getStringImage(Bitmap bmp){
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageBytes = baos.toByteArray();
    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
    return encodedImage;
    }

使用凌空将图像转换为 base64 字符串后,我正在发布到 SQL 数据库中。然后使用 PHP 解码 base64 字符串并将图像路径保存在 DB 表中。存储路径,但不存储文件夹中的图像。它有什么问题。

使用的 PHP 代码:

if($_SERVER['REQUEST_METHOD']=='POST'){
    $FoodName = $_POST['FoodName'];
            $FoodLocation = $_POST['FoodLocation'];
    $ShopName = $_POST['ShopName'];
            $Type = $_POST['Type'];
            $image = $_POST['image'];
    require_once('dbConnect.php');
            $sql ="SELECT id FROM Volley ORDER BY id ASC";
    $res = mysqli_query($con,$sql);
    $id = 0;
    while($row = mysqli_fetch_array($res)){
            $id = $row['id'];
    }
    $path = "images/New folder/$id.jpg";
    $actualpath = "http://ccc.ccc.com/$path";

    $sql = "INSERT INTO Volley (FoodName,FoodLocation,ShopName,Type,image) VALUES ('$FoodName','$FoodLocation','$ShopName','$Type','$actualpath')";

    if(mysqli_query($con,$sql)){
                    file_put_contents('$path',base64_decode($image));
        echo "Successfully posted";
    }else{
        echo "Could not post";
    }
}else{
echo 'error';
}

来自Android的BASE 64:

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAGLAScDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD92vGf
jfwN8MPBvir4h/EvxVZeD/A/g7Q9S1zxV4q1vUjp3hrw34a05mAA1YHknbx1Ocg5OCfzZ8EfGn/g
or+3ZZnxX+xh4D+HH7K37N+pll8KftH/ALVHhnWfEnxc+LemhpFPjD4Pfs6qSuh+B+AV8SeICylS
cSEh6vfGPwTH+3P/AMFDvhv+x54jP2n9mP8AZW8D+Gv2pv2ndAGrD/hG/i18S/Gmst/wzr8N/GO1
y2uaFoiaL4h+In/COMNjK0y7mZXNftZKfNmtiFscWeLCwsbHTf7O0zTdMYv/AGOdH0jP/Ei0Pjr2
yRnk1+W4fD4PB4N/WrSctbSu9OaVnZtJtt9Xyckr2c5o+bw+HwawclrfoujjeXdNO6a7/E7NySPy
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

如果您的 base64 编码字符串前面附加了data:image/jpeg;base64,,则需要在base64_decode之前将其删除

你可以为它使用这样的东西

str_replace("data:image/jpeg;base64,","",$image);

更新

我试图在这里转换你的字符串,但它似乎已损坏。base64 字符串不正确。

如果代码中有换行符,则可能会发生这种情况。因此,在解码字符串之前,请尝试替换字符串中的'n或任何其他空格。您也可以为此使用str_replace("'n", "", $image)。试着让我知道