Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membetulkan Ralat 'Imej Tidak Sah' Apabila Menukar Rentetan Base64 kepada JPEG?

Bagaimana untuk Membetulkan Ralat 'Imej Tidak Sah' Apabila Menukar Rentetan Base64 kepada JPEG?

Linda Hamilton
Lepaskan: 2024-12-14 06:14:11
asal
236 orang telah melayarinya

How to Fix

Tukar Rentetan Base64 kepada Fail Imej

Menukar rentetan berkod Base64 kepada fail imej boleh menjadi mudah, tetapi ralat mungkin timbul jika tidak dikendalikan dengan betul. Satu ralat sedemikian ialah imej tidak sah.

Masalah:

Apabila cuba menukar rentetan Base64 kepada fail imej menggunakan kod berikut:

function base64_to_jpeg($base64_string, $output_file) {
    $ifp = fopen( $output_file, "wb" );
    fwrite( $ifp, base64_decode( $base64_string) );
    fclose( $ifp );
    return( $output_file );
}

$image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );
Salin selepas log masuk

anda mungkin menghadapi ralat menyatakan "tidak sah imej."

Penyelesaian:

Ralat berpunca daripada kemasukan data:image/png;base64 dalam kandungan yang dikodkan. Data tambahan ini mengganggu proses penyahkodan base64 dan mengakibatkan fail imej tidak sah. Untuk menyelesaikan isu ini, alih keluar data berlebihan sebelum menyahkod rentetan:

function base64_to_jpeg($base64_string, $output_file) {
    // open the output file for writing
    $ifp = fopen($output_file, 'wb');

    // split the string on commas
    // $data[0] == "data:image/png;base64"
    // $data[1] == <actual base64 string>
    $data = explode(',', $base64_string);

    // we could add validation here with ensuring count( $data ) > 1
    fwrite($ifp, base64_decode($data[1]));

    // clean up the file resource
    fclose($ifp);

    return $output_file;
}
Salin selepas log masuk

Dengan mengalih keluar data yang tidak diperlukan dan memastikan bahawa hanya rentetan yang dikodkan Base64 sebenar dinyahkod, anda akan berjaya menukar rentetan itu menjadi sah. fail imej.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Imej Tidak Sah' Apabila Menukar Rentetan Base64 kepada JPEG?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan