Java를 사용하여 긴 blob (이미지)을 mysql 데이터베이스에 업로드하고 PHP에서 검색하는 방법은 무엇입니까?

silverFoxA

저는 데이터베이스에 이미지를 업로드하고 데이터베이스에서 동일한 이미지를 검색해야하는 프로젝트를 진행 중입니다.

Java를 사용하여 Android 장치에서 이미지를 업로드해야합니다. 다음은 내가 구현 한 것입니다.

Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
            // Log.d(TAG, String.valueOf(bitmap));
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream); //compress to which format you want.
            byte[] byte_arr = stream.toByteArray();
            image_str = Base64.encodeToString(byte_arr, Base64.DEFAULT);

데이터베이스에 바이트 배열을 삽입하고 있습니다. 그리고 다음은 같은 것을 검색하는 내 PHP 코드입니다.

 /**
*Get profile_pic*/
public function callmethod($userId){
    $stmt = $this->conn->prepare("SELECT profile_pic FROM users WHERE unique_id=?");
    $stmt->bind_param('s',$userId); 
    //$result = mysql_query($query) or die(mysql_error()); 
    //$photo = mysql_fetch_array($result); 
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($profile_pic);
    $stmt->fetch();
     //$obj->picture = base64_encode($profile_pic);
    //echo $obj;

    header("Content-Type: image/jpeg");
echo '<img src="data:image/jpeg;base64,<?php echo base64_encode($profile_pic); ?>" />';
}

여기서 내가 직면 한 문제는 파일이 데이터베이스에 업로드되고 있지만 데이터베이스에서 이미지를 검색 할 때 변수 $profile_pic가 비어 있으므로 이미지가 표시되지 않는다는 것입니다.

안드로이드에서 자바를 사용하여 이미지를 검색 할 수 있어야합니다. 값 검색을 json형식으로 인코딩하여 그렇게 할 수 있습니까?

내가 뭘 잘못하고 있는지 알려주세요. TIA

Archish
 /**
*Get profile_pic*/
public function callmethod($userId){
$stmt = $this->conn->prepare("SELECT profile_pic FROM users WHERE unique_id=?");
$stmt->bind_param('s',$userId); 
//$result = mysql_query($query) or die(mysql_error()); 
//$photo = mysql_fetch_array($result); 
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($profile_pic);
while ($stmt->fetch()) {
    echo "<img src='data:image/jpeg;base64,".$profile_pic."' />";
}
 //$obj->picture = base64_encode($profile_pic);
//echo $obj;


}

이 코드를 시도해보십시오 header("Content-Type: image/jpeg");. 기능이 필요하지 않습니다 . 이것은 PHP 코드의 오류입니다. 이 코드는 basc64로 img 태그를 생성합니다.

이제 안드로이드 부분입니다.

이것을 PHP에서 변경하십시오.

while ($stmt->fetch()) {
    echo "<img src='data:image/jpeg;base64,".$profile_pic."' />";
}

...에

while ($stmt->fetch()) {
    echo $profile_pic;
}

그리고 이것은 당신의 안드로이드 부분이 될 것입니다.

byte[] decodedString = Base64.decode(strBase64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
image.setImageBitmap(decodedByte);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관