C++ を使用して画像をローカルで Base64 エンコードし、PHP で Base64_decode デコードした後、保存後の画像が正しくなりません。 16 進エディタを使用してソース ファイル (ローカル ソース ファイル イメージ) を表示および比較すると、保存後に 0d
--carriage return 文字が欠落していることがわかります。
このプロセス中に発生する問題は、送信後_POST['data']の後に取り出されたデータが、以前のbase64エンコードされたデータと比較されることです。これを元のデータに戻すには、phpのstr_replace(...)
を使用します。問題がないことが確認できます。
$img = base64_decode(...)
解码后,返回的strlen($img)
的长度和源文件的长度是一样的。无论是用for(...) fwrite(...);
还是file_put_contents(...)
の後、すべてのバイトが失われます0d
C++ を使用して画像をローカルで Base64 エンコードし、PHP で Base64_decode デコードした後、保存後の画像が正しくなりません。 16 進エディタを使用してソース ファイル (ローカル ソース ファイル イメージ) を表示および比較すると、保存後に 0d
--carriage return 文字が欠落していることがわかります。
このプロセス中に発生する問題は、送信後_POST['data']の後に取り出されたデータが、以前のbase64エンコードされたデータと比較されることです。これを元のデータに戻すには、phpのstr_replace(...)
を使用します。問題がないことが確認できます。
$img = base64_decode(...)
解码后,返回的strlen($img)
的长度和源文件的长度是一样的。无论是用for(...) fwrite(...);
还是file_put_contents(...)
の後、すべてのバイトが失われます0d
と同様に、この画像を Web 上に直接出力して、正常に表示できるかどうかを確認できます。