>백엔드 개발 >PHP 튜토리얼 >PHP에서 데이터-URI를 파일로 변환할 때 손상된 이미지를 수정하는 방법은 무엇입니까?

PHP에서 데이터-URI를 파일로 변환할 때 손상된 이미지를 수정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-23 08:52:291047검색

How to Fix Corrupted Images When Converting Data-URIs to Files in PHP?

파일로의 PHP 데이터-URI: 손상된 이미지

웹 개발에서는 JavaScript에서 데이터를 데이터-URI. 그러한 시나리오 중 하나는 PHP를 사용하여 이 URI를 파일에 저장하는 것입니다. 그러나 일부 사용자는 다음 코드를 사용하여 이 작업을 시도한 후 손상된 이미지 파일을 받았다고 보고했습니다.

<code class="php">$data = $_POST['logoImage'];
$uri = substr($data,strpos($data,",")+1);
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>

이 문제는 canvas.toDataURL()과 같은 특정 JavaScript 함수가 공백을 백분율로 인코딩한다는 사실에서 발생합니다. (%). 그러나 PHP base64_decode 함수에는 더하기 기호( )가 필요합니다.

이 문제를 해결하려면 데이터 URI를 디코딩하기 전에 모든 공백을 더하기 기호로 바꾸도록 코드를 수정해야 합니다.

<code class="php">// Replace spaces with pluses
$encodedData = str_replace(' ','+',$data);
// Decode the modified data-URI
$uri = substr($encodedData,strpos($encodedData,",")+1);
// Save the decoded data-URI as a file
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>

이 수정을 구현하면 코드가 JavaScript에서 받은 Data-URI를 올바르게 디코딩하고 저장하여 이미지 파일이 손상되지 않게 됩니다.

위 내용은 PHP에서 데이터-URI를 파일로 변환할 때 손상된 이미지를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.