Envoyer fichier en GET

Fermé
powpowland Messages postés 396 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 - 5 mai 2009 à 17:56
powpowland Messages postés 396 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 - 6 mai 2009 à 17:33
Bonjour,

je voulais savoir s'il était possible d'uploader un fichier avec un GET ?
A voir également:

5 réponses

hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
5 mai 2009 à 18:13
Bonjour,

Euh... Oui, je ne vois pas pourquoi sa serait impossible. Tu n'as jamais vu des adresses d'upload genre "https://www.lesite.com/?action=upload&fichier=DJFG5245&id=325952" ???

Un bon exemple sur media-convert ;)

A+
0
powpowland Messages postés 396 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 20
5 mai 2009 à 18:15
mais alors on fait comment parce que je n'y arrive pas du tout...
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
5 mai 2009 à 18:25
Et bien tout dépend ton script d'upload...
0
powpowland Messages postés 396 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 20
6 mai 2009 à 10:32
bon vu que je galère vraiment... voici mon code :

<?php

        define( 'MAIL_FROM',"Obligatoire");
        define( 'MAIL_EVENEMENT',"Obligatoire");
        define( 'MAIL_DATE',"Obligatoire");
        define( 'MAIL_LIEU',"Obligatoire");
        define( 'MAIL_DESC',"Obligatoire et faites une description la plus complète possible, avec une adresse, un n° de tel pour les renseignements et un petit texte sympa pour donner envie.

C'est ce texte qui sera mis en description de l'évènement.");

        $mailto = "mail@test.fr";
        $mailfrom = MAIL_FROM;
        $evenement = MAIL_EVENEMENT;
        $date = MAIL_DATE;
        $lieu = MAIL_LIEU;
        $desc = MAIL_DESC;
        
        $mailsent = false;
        $errors = array();

if (isset($_GET["evenement"]))
    {
        $mailfrom = $_GET["mailfrom"];
        $evenement = $_GET["evenement"];
        $date = $_GET["date"];
        $lieu = $_GET["lieu"];
        $desc = $_GET["desc"];
        $affiche = $_GET["affiche"];
        
        if($mailfrom === NULL || $mailfrom === MAIL_FROM){
            $errors[] = 'Vous devez renseigner votre adresse email.';
        }
            $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   
            $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
                               
            $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';

            if (!preg_match($regex, $mailfrom)) {
                $errors[] = "L'adresse e-mail n'est pas valide";
            }
        
        if($evenement === NULL || $evenement === MAIL_EVENEMENT){
            $errors[]='Vous devez renseigner le nom de l\'évènement';
        }
        
        if ($date === NULL || $date === MAIL_DATE){
            $errors[]='Vous devez renseigner la date';
        }
        
        if ($lieu === NULL || $lieu === MAIL_LIEU){
            $errors[]='Vous devez renseigner le lieu';
        }
        
        if ($desc === NULL || $desc === MAIL_DESC){
            $errors[]='Vous devez renseigner une description';
        }
        
        //----------------------------------AFFICHE------------------------------
        
        $dossier = '/affiches';
        $dossier2 = '/affiches/';
        $fichier = $_FILES['affiche']['name'];
        echo $fichier;
        
        $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG','.PNG','.GIF','.JPEG');
        $extension = strrchr($affiche, '.');
        list($nomphoto, $extensionphoto) = explode(".", $affiche);
        
        if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
        {
             $errors[] = 'Extension de l\'affiche refusée';
        }
        
        if ($affiche != "none")
        {
        
        $affiche = strtr($affiche, 
                  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
                  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
             $affiche = preg_replace('/([^.a-z0-9]+)/i', '-', $affiche);
        
        If(file_exists("$dossier/$affiche"))
        {
        $errors[]='Le fichier que vous voulez transférer existe déjà dans notre répertoire.';
        }
        }
        
        if (count($errors) === 0){
            echo $affiche;
            if(move_uploaded_file($affiche, $dossier2 . $affiche)){
                $file = $dossier2.$affiche;
                
                $source = imagecreatefromjpeg($file);
                
                $x = imagesx($source);
                $y = imagesy($source);
                
                $ymax = 355;
                
                $ratmax = $y / $ymax;
                $xmax = $x/$ratmax;
                
                $sourcemax = imagecreatefromjpeg($file);
                $destinationmax = imagecreatetruecolor($xmax, $ymax);
                
                $largeur_sourcemax = imagesx($sourcemax);
                $hauteur_sourcemax = imagesy($sourcemax);
                $largeur_destinationmax = imagesx($destinationmax);
                $hauteur_destinationmax = imagesy($destinationmax);
                
                imagecopyresampled($destinationmax, $sourcemax, 0, 0, 0, 0, $largeur_destinationmax, $hauteur_destinationmax, $largeur_sourcemax, $hauteur_sourcemax);
                
                imagejpeg($destinationmax, $dossier2.$fichier);
                echo "<img src='".$dossier2.$fichier."' alt='Apercu' />";
            }
            
            else{
                $errors[]='L\'affiche dépasse les 2Mo limités.';
            }
        }
        
        //--------------------------------FIN AFFICHE----------------------------
        
        if (count($errors) === 0)
        {echo "
        <div id='verif'>
        Adresse mail : ".$mailfrom."<br>
        Nom de l'évènement : ".$evenement."<br>
        Date de l'évènement : ".$date."<br>
        Lieu de l'évènement : ".$lieu."<br>
        Description de l'évènement : ".$desc."<br>
        Affiche de l'évènement : ".$affiche."<br>
        </div>";}
        
        else{foreach ($errors as $error ){echo $error."<br>";}}
    }

echo '<div id="formulaire">

    <form id="contact" method="GET">
    <table>
        <tr><td align="right"><label>Adresse email :</label></td>
        <td><input type="text" name="mailfrom" value="'.$mailfrom.'"></td></tr>
        
        <tr><td align="right"><label>Nom de l\'évènement :</label></td>
        <td><input type="text" name="evenement" value="'.$evenement.'"></td></tr>
        
        <tr><td align="right"><label>Date de l\'évènement :</label></td>
        <td><input type="text" name="date" value="'.$date.'"></td></tr>
        
        <tr><td align="right"><label>Lieu de l\'évènement :</label></td>
        <td><input type="text" name="lieu" value="'.$lieu.'"></td></tr>
        
        <tr><td valign="top" align="right"><label>Description de l\'évènement :</label></td>
        <td><textarea name="desc" cols="50" rows="10">'.$desc.'</textarea></td></tr>
        
        <tr><td align="right"><label>Affiche de l\'évènement :</label></td>
        <td><input type="file" name="affiche"></td></tr>
        
        <tr><td><input type="reset" name="reset" value="Effacer"></td>
        <td><input type="submit" name="submit" value="Proposer l\'évènement"</td></tr>
    </table>
    </form>
</div>';
?>


en gros, il bloque quand je met ça "$_FILES['affiche']['name']" , il dit que "affiche" n'existe pas... et donc, il saute ça : "if(move_uploaded_file($affiche, $dossier2 . $affiche))" que j'ai essayé de tourner de toutes les manières possible...

j'en ai fait un en POST pour un autre site, mais pas moyen en GET, mais si ça marche pas je vais me démerder pour le faire en POST, ce qui ne sera pas dur du tout... mais je voulais y arriver en GET...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
powpowland Messages postés 396 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 2 mars 2022 20
6 mai 2009 à 17:33
bon j'ai abandonné le GET et je suis passé au POST...

Mon problème est que il bloque sur "if(move_uploaded_file($_FILES['avatar']['name'],$dossier2.$affiche))"...

voici le code entier si quelqu'un peut m'aider...
code contact.php
<?php

        define( 'MAIL_FROM',"Obligatoire");
        define( 'MAIL_EVENEMENT',"Obligatoire");
        define( 'MAIL_DATE',"Obligatoire");
        define( 'MAIL_LIEU',"Obligatoire");
        define( 'MAIL_DESC',"Obligatoire et faites une description la plus complète possible, avec une adresse, un n° de tel pour les renseignements et un petit texte sympa pour donner envie.

C'est ce texte qui sera mis en description de l'évènement.");

        $mailto = "mail@my-contest.fr";
        $mailfrom = MAIL_FROM;
        $evenement = MAIL_EVENEMENT;
        $date = MAIL_DATE;
        $lieu = MAIL_LIEU;
        $desc = MAIL_DESC;
       
        
       

echo '<div id="formulaire">

    <form id="contact" method="POST" action="upload.php" enctype="multipart/form-data">
    <table>
        <tr><td align="right"><label>Adresse email :</label></td>
        <td><input type="text" name="mailfrom" value="'.$mailfrom.'"></td></tr>
        
        <tr><td align="right"><label>Nom de l\'évènement :</label></td>
        <td><input type="text" name="evenement" value="'.$evenement.'"></td></tr>
        
        <tr><td align="right"><label>Date de l\'évènement :</label></td>
        <td><input type="text" name="date" value="'.$date.'"></td></tr>
        
        <tr><td align="right"><label>Lieu de l\'évènement :</label></td>
        <td><input type="text" name="lieu" value="'.$lieu.'"></td></tr>
        
        <tr><td valign="top" align="right"><label>Description de l\'évènement :</label></td>
        <td><textarea name="desc" cols="50" rows="10">'.$desc.'</textarea></td></tr>
        
        <tr><td valign="top" align="right"><label>Vidéo éditions précédentes (liens Zapiks, Youtube, DailyMotion...) :</label></td>
        <td><input type="text" name="video" value="Pas de Vidéo"></td></tr>
        
        <tr><td align="right"><label>Affiche de l\'évènement :</label></td>
        <td><input type="file" name="avatar"></td></tr>
        
        <tr><td><input type="reset" name="reset" value="Effacer"></td>
        <td><input type="submit" name="submit" value="Proposer l\'évènement"</td></tr>
    </table>
    </form>
</div>';
?>






code upload.php
<?php

        define( 'MAIL_FROM',"Obligatoire");
        define( 'MAIL_EVENEMENT',"Obligatoire");
        define( 'MAIL_DATE',"Obligatoire");
        define( 'MAIL_LIEU',"Obligatoire");
        define( 'MAIL_DESC',"Obligatoire et faites une description la plus complète possible, avec une adresse, un n° de tel pour les renseignements et un petit texte sympa pour donner envie.

C'est ce texte qui sera mis en description de l'évènement.");

        $mailto = "mail@my-contest.fr";
        $mailfrom = MAIL_FROM;
        $evenement = MAIL_EVENEMENT;
        $date = MAIL_DATE;
        $lieu = MAIL_LIEU;
        $desc = MAIL_DESC;
    
 $mailsent = false;
        $errors = array();

if (isset($_POST["evenement"]))
    {
        $mailfrom = $_POST["mailfrom"];
        $evenement = $_POST["evenement"];
        $date = $_POST["date"];
        $lieu = $_POST["lieu"];
        $desc = $_POST["desc"];
        $video = $_POST["video"];
        $affiche = basename($_FILES['avatar']['name']);
        
        if($mailfrom === NULL || $mailfrom === MAIL_FROM){
            $errors[] = 'Vous devez renseigner votre adresse email.';
        }
            $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   
            $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
                               
            $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';

            if (!preg_match($regex, $mailfrom)) {
                $errors[] = "L'adresse e-mail n'est pas valide";
            }
        
        if($evenement === NULL || $evenement === MAIL_EVENEMENT){
            $errors[]='Vous devez renseigner le nom de l\'évènement';
        }
        
        if ($date === NULL || $date === MAIL_DATE){
            $errors[]='Vous devez renseigner la date';
        }
        
        if ($lieu === NULL || $lieu === MAIL_LIEU){
            $errors[]='Vous devez renseigner le lieu';
        }
        
        if ($desc === NULL || $desc === MAIL_DESC){
            $errors[]='Vous devez renseigner une description';
        }
        
        //----------------------------------AFFICHE------------------------------
        
        $dossier = 'affiches';
        $dossier2 = 'affiches/';
        
        $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG','.PNG','.GIF','.JPEG');
        $extension = strrchr($affiche, '.');
        list($nomphoto, $extensionphoto) = explode(".", $affiche);
        
        if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
        {
             $errors[] = 'Extension de l\'affiche refusée';
        }
        
        if ($affiche != "none")
        {
        
        $affiche = strtr($affiche, 
                  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
                  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
             $affiche = preg_replace('/([^.a-z0-9]+)/i', '-', $affiche);
        
        If(file_exists("$dossier/$affiche"))
        {
        $errors[]='Le fichier que vous voulez transférer existe déjà dans notre répertoire.';
        }
        }
        
        if (count($errors) === 0){

            if(move_uploaded_file($_FILES['avatar']['name'],$dossier2.$affiche)){
                $file = $dossier2.$affiche;
                
                $source = imagecreatefromjpeg($file);
                
                $x = imagesx($source);
                $y = imagesy($source);
                
                $ymax = 355;
                
                $ratmax = $y / $ymax;
                $xmax = $x/$ratmax;
                
                $sourcemax = imagecreatefromjpeg($file);
                $destinationmax = imagecreatetruecolor($xmax, $ymax);
                
                $largeur_sourcemax = imagesx($sourcemax);
                $hauteur_sourcemax = imagesy($sourcemax);
                $largeur_destinationmax = imagesx($destinationmax);
                $hauteur_destinationmax = imagesy($destinationmax);
                
                imagecopyresampled($destinationmax, $sourcemax, 0, 0, 0, 0, $largeur_destinationmax, $hauteur_destinationmax, $largeur_sourcemax, $hauteur_sourcemax);
                
                imagejpeg($destinationmax, $dossier2.$fichier);
                echo "<img src='".$dossier2.$fichier."' alt='Apercu' />";
            }
            
            else{
                $errors[]='L\'affiche dépasse les 2Mo limités.';
            }
        }
        
        //--------------------------------FIN AFFICHE----------------------------
        
        if (count($errors) === 0)
        {echo "
        <div id='verif'>
        Adresse mail : ".$mailfrom."<br>
        Nom de l'évènement : ".$evenement."<br>
        Date de l'évènement : ".$date."<br>
        Lieu de l'évènement : ".$lieu."<br>
        Description de l'évènement : ".$desc."<br>
        Affiche de l'évènement : ".$affiche."<br>
        </div>";}
        
        else{foreach ($errors as $error ){echo $error."<br>";}}
    }
?>


et si quelqu'un sait comment faire en GET, je suis preneur aussi... merci
0