ホームページ >バックエンド開発 >PHPチュートリアル >PHP でのファイル変換中にデータ URI 内のスペースを処理するにはどうすればよいですか?

PHP でのファイル変換中にデータ URI 内のスペースを処理するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-23 08:52:02750ブラウズ

How to Handle Spaces in Data URIs During File Conversion in PHP?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。