PHP データ URI からファイルへ: 破損した画像の問題を解決する
データ URI からファイル形式への変換中に画像データの整合性を維持する重要です。 PHP の file_put_contents 関数を使用して JavaScript Canvas.toDataURL() 呼び出しからのデータを保存するときに遭遇する一般的な課題は、結果として得られる画像の破損です。この問題は、Data-URI に空白が存在することが原因で発生します。
PHP のドキュメントには、この問題に対する簡単な解決策が記載されています。
<code class="php">$encodedData = str_replace(' ', '+', $encodedData); $decodedData = base64_decode($encodedData);</code>
空白をプラスに置き換えることにより、デコードされたデータはは正しく再構築され、画像ファイルが破損していないことが確認されます。
あなたの特定のケースでは、PNG 画像を含む Data-URI を操作していました。このソリューションをコードに組み込む方法は次のとおりです。
<code class="php">// Get the base64-encoded URI data from JavaScript $data = $_POST['logoImage']; // Remove the leading "data:image/png;base64," part $uri = substr($data, strpos($data, ',') + 1); // Replace any whitespace with a plus $uri = str_replace(' ', '+', $uri); // Decode the base64-encoded data $decodedData = base64_decode($uri); // Save the decoded data to a file with the specified name file_put_contents($_POST['logoFilename'], $decodedData);</code>
このアプローチに従うことで、データ URI を破損していない PNG ファイルとして正常に保存できます。
以上がPHP でデータ URI をファイルに変換するときに破損したイメージの問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。