2011-11-24 2 views
9

POST 요청을 통해 내 웹 서비스에 base64로 인코딩 된 JPEG 문자열이 표시됩니다. 디코드하고 파일 시스템에 저장하고 싶습니다. PHP 5.3을 사용하여 어떻게이 작업을 수행 할 수 있습니까? base64_decode 함수를 사용하여 데이터를 성공적으로 디코딩 할 수 있습니다.php를 사용하여 파일 시스템에 base64 디코딩 된 이미지를 저장하는 방법은 무엇입니까?

디코딩 된 문자열을 서버의 JPEG 이미지로 저장하려면 어떻게해야합니까?

미리 감사드립니다. 당신이 확실한 경우

+0

이 파일을 fopen을 사용하여 이진 파일에 저장하려고 했습니까? – Arfeen

+0

@Arfeen 고마워요, 나는 file_put_contents()를 시도하고 효과가있었습니다. 나는 당신과 로렌스 쉐론의 의견에 주목하기 위해 여기에 왔습니다. – Amit

+0

훨씬 더 유연하고 강력한 솔루션 인 [PHP-FileUpload] (https://github.com/delight-im/PHP-FileUpload/tree/master)는 [Base64Upload'] (https : //github.com/delight-im/PHP-FileUpload/blob/7c950635cbd45ade9fb2656eb285259dc2a8f0fb/src/Base64Upload.php) 및 ['DataUriUpload'] (https://github.com/delight-im/PHP-FileUpload/blob/7c950635cbd45ade9fb2656eb285259dc2a8f0fb /src/DataUriUpload.php), 여기에 설명되어 있습니다 (https://github.com/delight-im/PHP-FileUpload/blob/master/README.md#usage). – caw

답변

12

이미지는 항상 당신이 간단하게 사용할 수 있습니다 jpg이 될 것입니다 : file_put_contents();

<?php 
$decoded=base64_decode($encodedString); 

file_put_contents('newImage.JPG',$decoded); 
//leave it to you to randomize the filename. 
?> 
+0

고마워. 그것은 작동합니다. 그러나 항상 JPEG로 보장되지 않습니다. MIME 형식에서 가져올 수 있는지 시도해 볼 것입니다. :) 감사를 도와주세요! – Amit

8

데이터가 canvas.toDataURL() 함수에서 파생 된 경우 필요합니다 + 표시와 함께 공백을 교체.

See this question

$encodedString = str_replace(' ','+',$encodedString); 

그것은 내 경우에 많은 도움이.

+0

그는 문자열을 디코드해야합니다. – FabianoLothor

관련 문제