Bonjour à tous,

J'ai créer un formulaire d'upload et j'ai quelques questions.

D'abord, je voudrais réduire mes formulaires d'upload en un seul. Qu'il fasse un test des dossiers. Après je voudrais le transformer en formulaire multiupload. Je ne souhaite par utiliser le HTML5 avec drag&drop car si mes clients utilisent IE sur certains postes je ne voudrais pas les pénaliser. Puis je voudrais que pendent l'upload une image leur montre l'avancement de l'upload.
Je voudrais aussi rajouter un bouton pour qu'ils puissent supprimer le dossier et aussi les certaines photos des dossiers.

Voici mes codes sources :

index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

    <title>Formulaire d'upload d'images</title>

    <link rel="shortcut icon" type="image/x-icon" href="">
    <link title="defaut" type="text/css" rel="stylesheet" href="style.css" media="screen">
    <link href="zoombox/zoombox.css" rel="stylesheet" type="text/css" media="screen">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="keywords" content="MOT CLE1; MOT CLE2">
    <meta name="Description" content="DESCRIPTION COURTE">

    <script type="text/javascript">
        function load() {
            alert('Upload en cours ...');
        }
    </script>
    <script type="text/javascript" src="zoombox/zoombox.js"></script>
</head>

<body>

    <center><h1>Formulaire d'upload d'images (nouveau dossier)</h1></center>

    <div id="container">

        <form method="post" action="upload_new.php" enctype="multipart/form-data">

            <input type="hidden" name="MAX_FILE_SIZE" value="2097152">

            <label>Nom du nouveau dossier :</label><br>
            <input type="text" id="nom" name="dossier">

            <br><br>

            <label>Nom du fichier 1:</label><br> 
            <input type="file" name="fichier1" id="nom">

            <br><br>    

            <label>Nom du fichier 2:</label><br> 
            <input type="file" name="fichier2" id="nom">

            <br><br>    

            <input type="submit" value="Envoyer" id="bouton" onclick="load();">

        </form>

    </div>

    <center><h1>Formulaire d'upload d'images (dossier existant)</h1></center>

    <div id="container">

        <form method="post" action="upload_exist.php" enctype="multipart/form-data">

            <input type="hidden" name="MAX_FILE_SIZE" value="21474836480">

            <label>Dossier déjà existant :</label><br>
            <select name="dossier_exist">
                <?php

                    $t = -2;
                    $dosc = "./images/"; // mettez ici la position du dossier souhaiter par rapport à la position du fichier php (si c'est la même ne touchez rien)
                    $ouvdos = opendir($dosc);
                    echo "" ;

                    while ($file = readdir($ouvdos)) {
                            $extension=strrchr($file,".");
                            if ($extension=="") // affichages des dossiers
                            echo "<option value='".$file."' name='dossier_exist'>".$file."</option>";
                    }

                    closedir ($ouvdos);

                ?>
            </select>

            <br><br>

            <label>Nom du fichier 1:</label><br> 
            <input type="file" name="fichier1" id="nom">

            <br><br>    

            <label>Nom du fichier 2:</label><br> 
            <input type="file" name="fichier2" id="nom">

            <br><br>    

            <input type="submit" value="Envoyer" id="bouton" onclick="load();">

        </form>

    </div>

    <center><h1>Affichage des dossiers</h1></center>

    <div id="container">

        <?php

            $t = -2;
            $dosc = "./images/"; // mettez ici la position du dossier souhaiter par rapport à la position du fichier php (si c'est la même ne touchez rien)
            $ouvdos = opendir($dosc);

            while ($file = readdir($ouvdos)) {
                    $extension=strrchr($file,".");
                    if ($extension=="") // affichages des dossiers
                    echo "<img src='ico.png'> <a href=\"".$dosc.$file."\">$file</a><br>";
            }

            closedir ($ouvdos);

        ?>

    </div>

</body>

</html>

upload_new.php

<?php

    $dossier = $_POST'dossier'];

    // Création du dossier
    @mkdir("images/".$dossier."/");

    // Dossier où sera déplacé le fichier
    $content_dir = "images/".$dossier."/"; 

    // Fichier 1 :
    if (!isset($_POST'fichier1'])) {
        @$tmp_file = $_FILES'fichier1']'tmp_name'];

        /*if(!is_uploaded_file($tmp_file)) {
            exit("Le fichier est introuvable");
        }*/

        // On vérifie maintenant l'extension
        $type_file = $_FILES'fichier1']'type'];

        if(!strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')) {
            exit("Le fichier n'est pas une image");
        }

        // On copie le fichier dans le dossier de destination
        $name_file = $_FILES'fichier1']'name'];

        // On verifie que le fichier soit vrai
        if( preg_match('#\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) ) {
            exit("Nom de fichier non valide");
        }
        else if( !move_uploaded_file($tmp_file, $content_dir . $name_file)) {
            exit("Impossible de copier le fichier dans $content_dir");
        }
    }

    // Fichier 2 :
    if (!isset($_POST'fichier2'])) {
        @$tmp_file = $_FILES'fichier2']'tmp_name'];

        /*if( !is_uploaded_file($tmp_file) ) {
            exit("Le fichier est introuvable");
        }*/

        // On vérifie maintenant l'extension
        $type_file = $_FILES'fichier2']'type'];

        if(!strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')) {
            exit("Le fichier n'est pas une image");
        }

        // On copie le fichier dans le dossier de destination
        $name_file = $_FILES'fichier2']'name'];

        // On verifie que le fichier soit vrai
        if( preg_match('#\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) ) {
            exit("Nom de fichier non valide");
        }
        else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) {
            exit("Impossible de copier le fichier dans $content_dir");
        }
    }

    echo "<script type='text/javascript'>alert('Upload réussis');document.location.href = 'index.php';</script>";
    echo "Vous allez être redirigé.<br>Si la redirection ne se fait pas, merci de cliquer <a href='index.php'>ici</a>.";

?>

upload_exist.php

<?php

    $dossier = $_POST'dossier_exist'];

    // Dossier où sera déplacé le fichier
    $content_dir = "images/".$dossier."/"; 

    // Fichier 1 :
    if (!isset($_POST'fichier1'])) {
        @$tmp_file = $_FILES'fichier1']'tmp_name'];

        if( !is_uploaded_file($tmp_file) ) {
            exit("Le fichier est introuvable");
        }

        // On vérifie maintenant l'extension
        $type_file = $_FILES'fichier1']'type'];

        if(!strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')) {
            exit("Le fichier n'est pas une image");
        }

        // On copie le fichier dans le dossier de destination
        $name_file = $_FILES'fichier1']'name'];

        // On verifie que le fichier soit vrai
        if( preg_match('#\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) ) {
            exit("Nom de fichier non valide");
        }
        else if( !move_uploaded_file($tmp_file, $content_dir . $name_file)) {
            exit("Impossible de copier le fichier dans $content_dir");
        }
    }

    // Fichier 2 :
    if (!isset($_POST'fichier2'])) {
        @$tmp_file = $_FILES'fichier2']'tmp_name'];

        if( !is_uploaded_file($tmp_file) ) {
            exit("Le fichier est introuvable");
        }

        // On vérifie maintenant l'extension
        $type_file = $_FILES'fichier2']'type'];

        if(!strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png')) {
            exit("Le fichier n'est pas une image");
        }

        // On copie le fichier dans le dossier de destination
        $name_file = $_FILES'fichier2']'name'];

        // On verifie que le fichier soit vrai
        if( preg_match('#\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) ) {
            exit("Nom de fichier non valide");
        }
        else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) {
            exit("Impossible de copier le fichier dans $content_dir");
        }
    }

    echo "<script type='text/javascript'>alert('Upload réussis');document.location.href = 'index.php';</script>";
    echo "Vous allez être redirigé.<br>Si la redirection ne se fait pas, merci de cliquer <a href='index.php'>ici</a>.";

?>

style.css

body {
    background-color: #e9eaee;
    font-family: calibri;
    font-size: 11pt;
    color: #5f5d59;
}
#container {
    background-color: #fff;
    width: 750px;
    height: auto;
    padding: 25px;
    margin: 0 auto;
    border: solid 1px #d0d0d0;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    text-align: justify;
}
#nom {
    font-size:11pt;
    border:solid #ccc 1px;
    padding:5px;
    width:300px;
    color: #5f5d59;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #e9eaee;
}
#mail {
    font-size:11pt;
    border:solid #ccc 1px;
    padding:5px;
    width:300px;
    color: #5f5d59;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #e9eaee;
}
a {
    font-family: calibri;
    font-size: 11pt;
    color: #5f5d59;
}
#message {
    font-size:11pt;
    border:solid #ccc 1px;
    padding:5px;
    color: #5f5d59;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #e9eaee;
}
#captcha {
    font-size:35px;
    border:solid #ccc 1px;
    padding:5px;
    width:120px;
    text-align:center;
    color: #5f5d59;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #e9eaee;
}
#bouton {
    font-size: 25px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    color: #fff;
    background-color: #2b2b2b;
    padding:5px;
}
#success {
    color:#149541;
}
#error {
    color: #ff3232;
}

Si vous avez les solutions je suis preneur. Cela fait maintenant 1 mois que je cherche tout seul et je ne trouve pas alors je demande un peu d'aide.

Merci d'avance de vos réponses.

3 réponses


Je suis désolé mais on ne va pas faire le code pour toi tu as regardé le tuto sur plupload ?

Moi je te renvoi vers ce topic :) qui contient 2 ou 3 lien vers des tutos qui correspondent a ta demande :) :
Meme demande (multiUpload)

@Grafikart : Je ne comptais pas que vous me fassiez le code, juste que vous me donniez quelques conseils
@mikachu : Très bien je regarde ça dès que possible.