PHP データ URI からファイルへ: 破損した画像の問題を解決する
データ URI からファイル形式への変換中に画像データの整合性を維持する重要です。 PHP の file_put_contents 関数を使用して JavaScript Canvas.toDataURL() 呼び出しからのデータを保存するときに遭遇する一般的な課題は、結果として得られる画像の破損です。この問題は、Data-URI に空白が含まれていることが原因で発生します。
PHP のドキュメントには、この問題に対する簡単な解決策が記載されています。
$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);
空白をプラスに置き換えることで、デコードされたデータが正しく再構築され、画像ファイルが破損しないことが保証されます。
特定のケースでは、次のようになります。 PNG 画像を含む Data-URI を操作していました。このソリューションをコードに組み込む方法は次のとおりです:
// 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);
この方法に従うと、データ URI を破損していない PNG ファイルとして正常に保存できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3