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

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal