Envoyer fichier en GET

powpowland Messages postés 428 Statut Membre -  
powpowland Messages postés 428 Statut Membre -
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 814 Statut Membre 51
 
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 428 Statut Membre 20
 
mais alors on fait comment parce que je n'y arrive pas du tout...
0
hack_net Messages postés 814 Statut Membre 51
 
Et bien tout dépend ton script d'upload...
0
powpowland Messages postés 428 Statut Membre 20
 
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 428 Statut Membre 20
 
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