2012-11-07 2 views
3

PHP Webservice을 통해 서버와 대화하는 모바일 앱을 개발 중입니다. 이것은 PHP를 처음 사용하는 것입니다. 데이터베이스에 데이터를 업로드했습니다. 이제 FTP 서버에 이미지를 저장해야합니다. 이를 위해 image->hex을 변환하여 내 앱에서 보냈습니다.PHP에서 이미지를 16 진수로 감추고 있습니까?

서버 측

I은 ​​16 진수 코드를 가지고 있지만, 이미지의 변환 및 FTP 서버에 저장하는 방법을 잘. 나는 정말로 여기에서 고투하고있다. 나는 그것을 봤지만 정확한 것을 발견 할 수 없었다.

도움을 주시면 감사하겠습니다.

+2

'pack ('H *', $ hex)'을 사용하여 이진 데이터로 다시 변환 할 수 있습니다. 솔직히 base64가 더 나은 경로 일 수 있습니다. 그것은 2 진수보다 약 33 % 더 큰 반면, 16 진수는 100 % 더 큽니다. –

+0

@gigawatt 당신의 제안에 감사드립니다. 나는 그것을 시도 할 것입니다. – GoCrazy

답변

7

바이너리로 16 진수 문자열로 변환 :

$binary = pack("H*", $hex); 

pack("H*", ...)는 PHP 5.4부터 사용할 수 있습니다 hex2bin, 동일합니다. 디스크에

쓰기는 :

file_put_contents("file.png", $binary); 
+0

답변 해 주셔서 감사합니다. 이것 +1을 시도합니다 – GoCrazy

+0

그것은 매력처럼 작동합니다. 하지만 나는'file_put_contents ("html \ Report \ Images \ file.png", $ binary)와 같은 특정 경로에 저장하려고 시도하고있다. 맞습니까? – GoCrazy

+0

해당 경로에 이미지를 저장하는 방법은 무엇입니까? 어떤 생각? – GoCrazy

0

당신이 실제 이미지에이 진수를 변환 할 페이지의 16 진수 문자열을받은 가정하자. 이 코드 스 니펫이 도움이되는지 확인하십시오.

<?php 

    $hexpic="....................... 
    ....................."; 

    # convert the hex string to binary 

    $data = pack("H" . strlen($hexpic), $hexpic); 

    #write the binary string into an image file 

    file_put_contents("sample.png", $data); 
?> 
+1

코드 블록 만 게시하는 대신이 코드가 문제를 해결하는 이유를 설명하십시오. 설명이 없으면 이것은 대답이 아닙니다. –

+0

죄송합니다. 답변을 위해 – fortune

+0

에게 감사를드립니다. 나는 그 이미지를 ftp에 저장했다. 이제'file_put_contents ("html \ Report \ Images \ file.png", $ binary);와 같은 특정 경로에 저장하려고합니다. 하지만 작동하지 않습니다. 그렇게하는 방법? – GoCrazy

관련 문제