Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengendalikan Ruang dalam URI Data Semasa Penukaran Fail dalam PHP?

Bagaimana untuk Mengendalikan Ruang dalam URI Data Semasa Penukaran Fail dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-23 08:52:02679semak imbas

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

Cara Menukar Data-URI kepada Fail dalam PHP

Apabila cuba menyimpan URI data yang diterima daripada JavaScript menggunakan PHP, menggunakan kod berikut mungkin menyebabkan fail imej rosak:

<code class="php">$data = $_POST['logoImage'];
$uri = substr($data, strpos($data, ",") + 1);
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>

Sebab asasnya ialah kehadiran ruang dalam URI data yang perlu ditukar kepada tanda tambah.

Penyelesaian :

Dokumentasi PHP mencadangkan bahawa untuk data yang diperoleh daripada fungsi Javascript canvas.toDataURL(), ruang hendaklah digantikan dengan tanda tambah sebelum penyahkodan.

<code class="php">$encodedData = str_replace(' ', '+', $encodedData);
$decodedData = base64_decode($encodedData);</code>

Menggabungkan pengubahsuaian ini ke dalam kod asal harus berjaya menyimpan fail imej:

<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>

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ruang dalam URI Data Semasa Penukaran Fail dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn