Maison > interface Web > js tutoriel > Comment enregistrer des images PNG côté serveur à partir d'URI de données Base64 à l'aide de PHP ?

Comment enregistrer des images PNG côté serveur à partir d'URI de données Base64 à l'aide de PHP ?

Susan Sarandon
Libérer: 2024-12-09 16:43:17
original
634 Les gens l'ont consulté

How to Save PNG Images Server-Side from Base64 Data URIs using PHP?

Enregistrement des images PNG côté serveur à partir des URI de données Base64

Pour convertir les chaînes base64 générées par l'outil JavaScript "Canvas2Image" de Nihilogic en fichiers PNG réels sur le serveur à l'aide de PHP, vous devez effectuer les étapes suivantes :

  1. Extraire le données d'image base64. Séparez l'en-tête URI des données des données base64 réelles. Voici un extrait :

    $data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE...';
    list($type, $data) = explode(';', $data);
    list(, $data) = explode(',', $data);
    Copier après la connexion
  2. Décoder les données base64.Convertir les données codées en chaîne binaire.

    $data = base64_decode($data);
    Copier après la connexion
  3. Enregistrez l'image dans un fichier. Écrivez les données décodées vers un fichier PNG sur le serveur.

    file_put_contents('/tmp/image.png', $data);
    Copier après la connexion
  4. Méthode alternative à une seule ligne : Vous pouvez également utiliser cette commande sur une seule ligne pour extraire, décoder et enregistrer l'image :

    $data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
    Copier après la connexion
  5. Assurer une gestion appropriée des erreurs : Mettre en œuvre des mécanismes pour détecter les URI de données non valides, les échecs de décodage base64 ou les types d'images incorrects, tels que :

    if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) {
        // Valid data URI
    } else {
        throw new \Exception('Invalid data URI');
    }
    
    if ($data === false) {
        throw new \Exception('Base64 decode failed');
    }
    Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal