FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Entraide concernant le webmastering (administration de sites).
Règles du forum : Entraide concernant le webmastering (administration de sites). Pour se faire aider à choisir un hébergeur, le service le mieux adapté selon ses objectifs, se faire aider à la création d'un site (problèmes de programmation, d'organisation, résolution de bugs...).
Merci de lire et de respecter la charte générale du forum.
  • Avatar du membre
Avatar du membre
par ameb2908
#208803
Bonsoir, je réalise un petit exercice sur les images.

Les images vont bien dans le dossier images, ainsi que les miniatures sans les accents, apostrophes et les espaces.

Mais s'insert dans la base avec tout ça.

Je vous joint mon code.

Merci d'avance et bonne soirée.

class/imageManager.php
Code : Tout sélectionner
class imageManager {

    private $db;
 
    public function __construct($db) {

        $this->setDb($db);
    }

    public function setDb(PDO $dbh) {

        return $this->db = $dbh;
    }

public function upload($files) {

        $upload_dir = IMAGE_DIR_PATH;
 
        foreach($files['upload_form']['error'] as $key => $error) {

            $error = 0;

            if($error == UPLOAD_ERR_OK) {

                $type = $files['upload_form']['type'][$key];
                $size = $files['upload_form']['size'][$key];
                $tmp_name = $files['upload_form']['tmp_name'][$key];
                $name = $files['upload_form']['name'][$key];
                $filename = $this->cleanText($name);

                if(($type == 'image/jpeg') AND ($size <= 70000000)) {
                    
                    if(move_uploaded_file($tmp_name, $upload_dir . $filename) === false) {

                        $error++;

                    }
                    else {

                        $this->createThumbnail($filename);
                    }
                }
                else {

                    $error++;

                    echo '<p class="msg_error">Seules les fichiers jpeg qui ont une taille inférieur
                                               ou égal 70000000 sont autorisés';
                }
            }
            else {

                $error++;
            }
        }
        
        if($error == 0) {

            return true;
        }
        else {

            return false;
        }
    }
admin/create-image.php
Code : Tout sélectionner
<?php

require('../include/inc-connexion.php');
require('../include/inc-config.php');
require('../class/Image.php');
require('../class/imageManager.php');
require('../process/process-create-image.php');
require('menu.php');

?>

<h1>upload</h1>

<?php if(isset($message)) echo $message ?>

<form id="upload" method="post" action="" enctype="multipart/form-data">
    <p><label for="title">Titre :</label></p>
    <p><input type="text" name="title_form" id="title"></p>
    
    <p><label for="descr">Description :</label></p>
    <p><textarea name="descr_form" id="descr" cols="50" rows="5"></textarea></p>

    <p>Ajoutez des images</p>
    <input type="file" name="upload_form[]" multiple="multiple" value="">
    
    <input type="submit" id="submit" name="submit_form" value="Validez">
</form>
process/process-create-image.php
Code : Tout sélectionner
if(!empty($_FILES)) {

    $manager = new imageManager($db);
    $images = $manager->upload($_FILES);

    if($images === true) {

        $message = '<p class="msg_success">Le chargement a réussi</p>';
    }
    else {

        $message = '<p class="msg_error">Le chargement a échoué</p>';
    }
}

if(!isset($_POST['submit_form'])) {

    $message = '<p class="msg_error">Aucune donnée n\'est fournie.
                               <a href="' . WEB_DIR_URL . 'admin/create-image.php">retour</a></p>';
}

if(isset($_POST['submit_form'])) {

    $title_form = htmlspecialchars(trim($_POST['title_form']));
    $descr_form = htmlspecialchars(trim($_POST['descr_form']));
  
    if((empty($title_form)) OR (empty($descr_form))) {
        
        $message = '<p class="msg_error">Une des informations est manquante.
                    <a href="' . WEB_DIR_URL . 'admin/create-image.php">retour</a></p>';
    }
    else {
        
        $images_data = array(
            
            'imgID'    => 1,
            'title'    => $title_form,
            'descr'    => $descr_form,
            'filename' => $_FILES['upload_form']['name'][0]
        );
    
        $image_data = new Image($images_data);

        $manager = new imageManager($db);

        if(!$manager->readImageData($images)) {

            $image = $_FILES['upload_form']['name'][0];

            $manager->cleanText($image);
            
            $manager->createImageData($image_data);
                
            echo '<p><a href="update-image.php">Mise à jour des données</a></p>';

            print_r($_FILES);
        }
        else {

            $message = '<p class="msg_error">Une erreur est survenue lors de l\'enregistrement
                                             des données dans la base.<br>
                                             Aucune information n\'a été enregistrée.</p>';
        }
    }
}
Long-distance relationship

Hello everyone! Lately I have been thinking abou[…]

I appreciate you sharing this knowledge. I adore y[…]

Your information is effective and extremely helpfu[…]

Poppy playtime unblocked is one of the most wel[…]