파일로의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!