PHP でデータ URI をファイルに変換する方法
PHP を使用して JavaScript から受信したデータ URI を保存しようとすると、次のコードは、画像ファイルが破損する可能性があります:
<code class="php">$data = $_POST['logoImage']; $uri = substr($data, strpos($data, ",") + 1); file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>
根本的な理由は、プラス記号に変換する必要があるデータ URI 内のスペースの存在です。
解決策:
PHP ドキュメントでは、JavaScript の Canvas.toDataURL() 関数から派生したデータについては、デコード前にスペースをプラス記号に置き換える必要があると示唆しています。
<code class="php">$encodedData = str_replace(' ', '+', $encodedData); $decodedData = base64_decode($encodedData);</code>
この変更を組み込む元のコードに入力すると、画像ファイルが正常に保存されるはずです:
<code class="php">$data = $_POST['logoImage']; $uri = substr($data, strpos($data, ",") + 1); $encodedData = str_replace(' ', '+', $uri); $decodedData = base64_decode($encodedData); file_put_contents($_POST['logoFilename'], $decodedData);</code>
以上がPHP でのファイル変換中にデータ URI 内のスペースを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。