IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Communication entre popup et page mere


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Communication entre popup et page mere
    Bonjour,

    J'ai un formulaire de saisie (maccueil.php), et dans se formulaire j'ai un bouton qui me permet d'ouvrir un popup (popup1.php) qui me permet de selectionner une photo et de la telecharger. mais il faut que je recupére le nom de mon fichier pour qu'il soit placer dans mon formulaire pour etre envoyer dans ma bdd. Tout cela en javascript.

    Code de maccueil.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    				"http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    	<title>Test</title>
    		<script type="text/javascript">
    		function OuvrirPopup(page,nom,option) {
    		window.open(page,nom,option);
    		}
    		</script>
    </head>
    <body>
    <div id="contenu">
    <center>
    	<table border="0">
    		<tr>
    			<td align=center>
    				<FORM name='origine'>
    					Votre choix <INPUT type="text" name="choix" disabled><BR>
    					<INPUT type="button" value="Ouvrir le popup" onClick="OuvrirPopup('popup1.php','popupchoix','width=300,height=150,menubar=no,status=no')"><BR>
    				</FORM>
    			</td>
    		</tr>
    	</table>
    </center>
    </div>
    </body>
    </html>
    Code de popup1.php (j'ai enelever la partie transfert et la compression volontairement):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <html>
    	<head>
    		<title>popup de choix</title>
     
    		<script language="javascript">
    		function Reporter(l) {
    			var choix=l.options[l.options.selectedIndex].value;
    			window.opener.document.forms["origine"].elements["choix"].value=choix;
    		}
    		</script>
    </head>
    <body>
    <center>
    		<form>
    					Image: <INPUT type="text" name="liste" value="'.$nom_file.'" onLoad="Reporter(this)" >
    		</form>
    </center>
    </body>
    </html>
    Merci de me filer un petit coup de main

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Je l'ai vu cette page mais sa ne correspond pas a ce que je souhaite je le ve en js, j'ai fait bcp de recherche la dessus et je ne trouve pas j'ai deja trouvé pour une liste déroulanbte mais des l'instant ou il s'agit d'un input type=text, ben sa marche plus

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    L'attribut onload n'existe pas sur les balises input.

    A quel moment ta balise est remplie ? A quel moment veux-tu transmettre les informations à la page mère ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    L'attribut onload n'existe pas sur les balises input.
    d'accord mais que mettre à la place?
    A quel moment ta balise est remplie ? A quel moment veux-tu transmettre les informations à la page mère ?
    Ma balise input est rempli juste apres le transfert de fichiers, donc cela recupére le nom de fichiers, et je ve transmettre les info soit à la fermeture de la fenetre soit juste apres avoir rempli la balise.
    Si possible j'aimerais faire, remplir ma balise, dire image uploadé attendre 2s fermé la popup et stocké l'info dans ma page mere.

    Cordialement

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Je suppose que tu as un input de type file pour charger ton image ?

    Si c'est le cas, un onchange sur cet input fera l'affaire.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    directement je te mets le code de compression et tout....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="description" content="Upload de photo avec redimentionnement" />
    <meta name="author" content="Bouillou" />
    	<title>Upload de photos JPG</title>
    	<SCRIPT language="javascript">
    		function Reporter(l) {
    			var choix=l.options[l.options.selectedIndex].value;
    			window.opener.document.forms["origine"].elements["choix"];
    		}
    	</SCRIPT>
    </head>
     
    <body bgcolor="#333333">
    
    <!-- ********************** -->
    <!-- * Contenu de la page * -->
    <!-- ********************** -->
    <p style="text-align: left">
    
    <font color="#FFFFFF">
    </p>
    
    <u>Info:</u><br>
    Pour envoyer une photo de 1Mb:
    <br>Modem   56 kb : ~ 7 minutes
    <br>ADSL 1200 kb : ~ 20 secondes
    <br><br>
    <p align="center">
    
    <?php 
    
    //---------------------------- 
    //  DEFINITION DES VARIABLES  
    //---------------------------- 
    
    //Pour les tester en local (avec EasyPHP,...)
    $test_local = 0; //0 pour le web                                       //N'effectue pas la réalocation de la mémoire du serveur
                                                                                           //et n'envoi pas de mail de confirmation
    
    $extension  = 'image/pjpeg';                              // MIME JPEG pour la comparaisond de l'extention du fichier
    $extension2 = 'image/jpeg';                               // MIME JPEG pour la comparaisond de l'extention du fichier
    $quality    = 90;                                         // Qualité de la compression JPEG
    $kb_max     = 70000;                                      // Valeur max en octets de l'image finale
    $max_size   = 5000000;                                    // Taille max en octets du fichier à uploader pour traitement 
    $largeurDestination = 500;                                // Largeur max de l'image finale en pixel
    $nom_rep    = $DOCUMENT_ROOT .'/images';                            // Lien du répertoire des dossier photos à la raçine du script (fin sans /)
    $site       = "xxxxx"; // Adresse du dossier où est installé le script (fin avec /)
    $mail_notif = "xxxxx";                        // Adresse mail pour la notification
    $mail_from  = "xxxxx";                      // Adresse mail envoi
    
    //--------------------------------------------- 
    //  DEFINITION DES VARIABLES LIEES AUX FICHIERS 
    //--------------------------------------------- 
    
    $nom_file     = $_FILES['fichier']['name']; 
    $taille       = $_FILES['fichier']['size']; 
    $tmp          = $_FILES['fichier']['tmp_name'];
    $ext_img         =   $_FILES['fichier']['type'];
    $lien_dossier = $nom_rep;
    $nom_rep     .= "/";
    $verif_exist  = $nom_rep;
    $verif_exist .= "/";
    $verif_exist .= $nom_file;
           
    //---------------------- 
    //  SCRIPT D'UPLOAD 
    //----------------------                     
                    
    //Enlever les accents
    //*******************
    function enlever_accents($dest_fichier){
    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿABCDEFGHIJKLMNOPQRSTUVWXYZ/', 
                                         'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyyabcdefghijklmnopqrstuvwxyz/');
    //remplacer les caracteres autres que lettres, chiffres et point par _
    $dest_fichier = preg_replace('/([^.a-z\/0-9]+)/i', '_', $dest_fichier);
    return $dest_fichier;
    }
    
    $nom_rep     = enlever_accents($nom_rep);
    $verif_exist = enlever_accents($verif_exist);
    $nom_file    = enlever_accents($nom_file);
    
    //Début de la procédure d'upload
    //******************************       
    if(!empty($_POST['posted'])) { 
        // On vérifie si le champ est rempli 
        if(!empty($nom_file)) { 
          //On vérifie que le nom du fichier n'existe pas
          if(!file_exists($verif_exist)) { 
            // On vérifie l'extension du fichier 
            if(($ext_img == $extension)||($ext_img == $extension2)) { 
               // On récupère les dimensions du fichier 
               $infos_img = getimagesize($tmp); 
                // On vérifie la taille de l'image 
                if($taille <= $max_size) { 
                //Crée le répertoire avec le pseudo
                if(!file_exists($nom_rep)){
                    mkdir($nom_rep,0755);
                    }
                   //upload du fichier
                   if(move_uploaded_file($tmp,$nom_rep."/".$nom_file)) { 
                        // Si upload OK alors on affiche le message de réussite 
                        chmod($verif_exist, 0755);
                        echo '<b><font color=red>Image uploadée avec succès !</font></b><br>'; 
                        echo '<hr />';
    					echo 'Image: <INPUT type="text" name="liste" value="'.$nom_file.'" onLoad="Reporter(this)" >';
                        echo '<hr />'; 
                        
                        //calcul et redimension
                        //*********************
                        $fichierSource  = $nom_rep;
                        $fichierSource .= "/";
                        $fichierSource .= $nom_file;  
                        $fichierSource  = $fichierSource;
                        //hauteur / largeur 
                        $rapport = $infos_img[1] / $infos_img[0];
                        //Dimension de sortie
                        $hauteurDestination = $largeurDestination * $rapport; 
                        
                        if($test_local == 1)
                          {
                           //Réaloue la mémoire dont le serveur à besoin
                           //*******************************************
                           $memoryNeeded = round(($infos_img[0] * $infos_img[1] * $infos_img['bits'] * $infos_img['channels'] / 8 + Pow(2, 16)) * 1.65);
                           $mem_in_use= memory_get_usage();
                           //echo "Mémoire utilisée : $memoryNeeded contre $mem_in_use<br><br>";
                           $test = (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 1;            
                           //solution calculée
                           if(function_exists('memory_get_usage') && memory_get_usage() + $memoryNeeded > (integer) ini_get('memory_limit') * pow(1024, 2))               
                               ini_set('memory_limit', (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 2 . 'M');
                          }
                         
                        //Création de l'image
                        //*******************
                        $source = imagecreatefromjpeg($fichierSource); 
                         
                        $largeurSource = imagesx($source); 
                        $hauteurSource = imagesy($source);
                                           
                        if($largeurSource > $largeurDestination){
                           $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)      
                                or die ("Erreur lors de la création de l'image");  
                        }
                        else{  
                           $im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
                                or die ("Erreur lors de la création de l'image");
                           $largeurDestination = $infos_img[0];
                           $hauteurDestination = $infos_img[1];     
                        }
                           
                        //Redimentionnement
                        //***************** 
                        ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);                                                                                    
                        
                        //Création du fichier de sortie
                        //*****************************
                        $fh=fopen($fichierSource,'w');
                        fclose($fh);
                        ImageJpeg ($im,$fichierSource,$quality);
                        $size_file = filesize($fichierSource);
                        
                        //Test de la taille en kb de l'image définitive
                        //*********************************************
                        $size_file = filesize($fichierSource);
                        $iteration = 0;
                        while($size_file > $kb_max){
                            if($quality > 0)$quality -= 5;
                            else {$quality = "Erreur!!!"; break;}
                           unlink($fichierSource);
                           $fh=fopen($fichierSource,'w');
                           fclose($fh);
                           ImageJpeg ($im,$fichierSource,$quality);
                           $size_file = filesize($fichierSource);
                           $iteration++;
                        }
    
                        echo '<hr />'; 
                           
                    } else { 
                        // Sinon on affiche une erreur système 
                        echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Problème lors de l\'upload !</b><br /><b>Erreur num : ', $_FILES['fichier']['error'], '</b><br /><br /></font>'; 
                    }
                } else { 
                    // Sinon on affiche une erreur pour les dimensions et taille de l'image 
                    echo "<b>La taille du fichier dépasse la taille maximale authorisée de $max_size octets!</b><br />"; 
                }    
            } else { 
                // Sinon on affiche une erreur pour l'extension 
                echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Votre image ne comporte pas l\'extension .jpg !</b><br /></font>'; 
            }
          } else {
                 //Sinon on demande de renommer
                 echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Une image avec le même nom existe déjà! Renommer la photo et réessayer, Merci.</b><br /></font>'; 
           }         
        } else { 
            // Sinon on affiche une erreur pour le champ vide 
            echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Aucune photo sélectionnée!</b><br /></font>'; 
        } 
    } 
    ?>
          
    	<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
    		<b>Envoyer le fichier :</b><br /><br />
    		<input type="hidden" name="posted" value="1" /> 
    
    		<font color="#FFFFFF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sélectionner la photo : </font><input name="fichier" type="file"><br><br> 
    		<p align="center"><input type="submit" value="Envoyer la photo" /><input type="button" name="B1" value="Fermer la fenêtre" onClick="window.close()"></p>
    	</form>   
    
    </body>
    </html>

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Hum, là je ne vois pas l'enchainement de tes actions ...

    1. Tu vas chercher l'image sur ton PC
    2. La value de l'input type file est remplie
    (est-ce à ce moment-là que tu veux remplir la fenêtre mère ?)
    3. Tu soumets le fomulaire
    4. Ca te charge l'image sur le serveur
    (et après ?)

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    ben:
    1. Tu vas chercher l'image sur ton PC
    2. La value de l'input type file est remplie
    3. Tu soumets le fomulaire
    4. Ca te charge l'image sur le serveur
    5. Sa me met le nom du fichiers dans ma balise inout, et c a se momenbt la que je ve que sa se transfert vers ma page mere..
    6. Cela compresse l'image

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Dans ta condition PHP (si elle est réussie), tu peux mettre ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
       opener.document.forms["origine"].elements["choix"].value = "<?=$nom_file?>";
       setTimeout(function(){window.close()}, 2000);
    </script>

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    c a dire je dois le mettre ou dans mon code tu pe me dire a peut epres dans mon code?

  12. #12
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Par là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <?
    ...
    if(!empty($_POST['posted'])) {
        // On vérifie si le champ est rempli 
        if(!empty($nom_file)) { 
          //On vérifie que le nom du fichier n'existe pas
          if(!file_exists($verif_exist)) { 
            // On vérifie l'extension du fichier 
            if(($ext_img == $extension)||($ext_img == $extension2)) { 
               // On récupère les dimensions du fichier 
               $infos_img = getimagesize($tmp); 
                // On vérifie la taille de l'image 
                if($taille <= $max_size) { 
                //Crée le répertoire avec le pseudo
                if(!file_exists($nom_rep)){
                    mkdir($nom_rep,0755);
                    }
                   //upload du fichier
                   if(move_uploaded_file($tmp,$nom_rep."/".$nom_file)) { 
                      [...]
                      echo '<hr />';
                      ?>
                      <script type="text/javascript">
                         opener.document.forms["origine"].elements["choix"].value = "<?=$nom_file?>";
                         setTimeout(function(){window.close()}, 2000);
                      </script>
                      <?
                   } else { 
                        // Sinon on affiche une erreur système 
                        echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Problème lors de l\'upload !</b><br /><b>Erreur num : ', $_FILES['fichier']['error'], '</b><br /><br /></font>'; 
                    }
                } else { 
                    // Sinon on affiche une erreur pour les dimensions et taille de l'image 
                    echo "<b>La taille du fichier dépasse la taille maximale authorisée de $max_size octets!</b><br />"; 
                }    
            } else { 
                // Sinon on affiche une erreur pour l'extension 
                echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Votre image ne comporte pas l\'extension .jpg !</b><br /></font>'; 
            }
          } else {
                 //Sinon on demande de renommer
                 echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Une image avec le même nom existe déjà! Renommer la photo et réessayer, Merci.</b><br /></font>'; 
           }         
        } else { 
            // Sinon on affiche une erreur pour le champ vide 
            echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Aucune photo sélectionnée!</b><br /></font>'; 
        } 
    } 
    ?>

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    cela ne fonctionne pas

  14. #14
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Qu'est-ce qui ne fonctionne pas ? Quel est le résultat ? La page se ferme mais tu ne récupères pas la valeur ou la page ne se ferme pas ?

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    la page ne se ferme pas et la veleur ne se transfert pas...

  16. #16
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    J'peux voir ton nouveau code ?

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    avec logiciel firebug (firefox) erreur: opener.document.forms.origine has no properties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="description" content="Upload de photo avec redimentionnement" />
    <meta name="author" content="Bouillou" />
    	<title>Upload de photos JPG</title>
    	<SCRIPT language="javascript">
    		function Reporter(l) {
    			var choix=l.options[l.options.selectedIndex].value;
    			window.opener.document.forms["origine"].elements["choix"];
    		}
    	</SCRIPT>
    </head>
     
    <body bgcolor="#333333">
    
    <!-- ********************** -->
    <!-- * Contenu de la page * -->
    <!-- ********************** -->
    <p style="text-align: left">
    
    <font color="#FFFFFF">
    </p>
    
    <u>Info:</u><br>
    Pour envoyer une photo de 1Mb:
    <br>Modem   56 kb : ~ 7 minutes
    <br>ADSL 1200 kb : ~ 20 secondes
    <br><br>
    <p align="center">
    
    <?php 
    
    //---------------------------- 
    //  DEFINITION DES VARIABLES  
    //---------------------------- 
    
    //Pour les tester en local (avec EasyPHP,...)
    $test_local = 0; //0 pour le web                                       //N'effectue pas la réalocation de la mémoire du serveur
                                                                                           //et n'envoi pas de mail de confirmation
    
    $extension  = 'image/pjpeg';                              // MIME JPEG pour la comparaisond de l'extention du fichier
    $extension2 = 'image/jpeg';                               // MIME JPEG pour la comparaisond de l'extention du fichier
    $quality    = 90;                                         // Qualité de la compression JPEG
    $kb_max     = 70000;                                      // Valeur max en octets de l'image finale
    $max_size   = 5000000;                                    // Taille max en octets du fichier à uploader pour traitement 
    $largeurDestination = 500;                                // Largeur max de l'image finale en pixel
    $nom_rep    = $DOCUMENT_ROOT .'/images';                            // Lien du répertoire des dossier photos à la raçine du script (fin sans /)
    $site       = "http://www.premierepierre.fr/"; // Adresse du dossier où est installé le script (fin avec /)
    $mail_notif = "fepagaf@yahoo.fr";                        // Adresse mail pour la notification
    $mail_from  = "From: fepagaf@hotmail.com";                      // Adresse mail envoi
    
    //--------------------------------------------- 
    //  DEFINITION DES VARIABLES LIEES AUX FICHIERS 
    //--------------------------------------------- 
    
    $nom_file     = $_FILES['fichier']['name']; 
    $taille       = $_FILES['fichier']['size']; 
    $tmp          = $_FILES['fichier']['tmp_name'];
    $ext_img         =   $_FILES['fichier']['type'];
    $lien_dossier = $nom_rep;
    $nom_rep     .= "/";
    $verif_exist  = $nom_rep;
    $verif_exist .= "/";
    $verif_exist .= $nom_file;
           
    //---------------------- 
    //  SCRIPT D'UPLOAD 
    //----------------------                     
                    
    //Enlever les accents
    //*******************
    function enlever_accents($dest_fichier){
    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿABCDEFGHIJKLMNOPQRSTUVWXYZ/', 
                                         'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyyabcdefghijklmnopqrstuvwxyz/');
    //remplacer les caracteres autres que lettres, chiffres et point par _
    $dest_fichier = preg_replace('/([^.a-z\/0-9]+)/i', '_', $dest_fichier);
    return $dest_fichier;
    }
    
    $nom_rep     = enlever_accents($nom_rep);
    $verif_exist = enlever_accents($verif_exist);
    $nom_file    = enlever_accents($nom_file);
    
    //Début de la procédure d'upload
    //******************************       
    if(!empty($_POST['posted'])) { 
        // On vérifie si le champ est rempli 
        if(!empty($nom_file)) { 
          //On vérifie que le nom du fichier n'existe pas
          if(!file_exists($verif_exist)) { 
            // On vérifie l'extension du fichier 
            if(($ext_img == $extension)||($ext_img == $extension2)) { 
               // On récupère les dimensions du fichier 
               $infos_img = getimagesize($tmp); 
                // On vérifie la taille de l'image 
                if($taille <= $max_size) { 
                //Crée le répertoire avec le pseudo
                if(!file_exists($nom_rep)){
                    mkdir($nom_rep,0755);
                    }
                   //upload du fichier
                   if(move_uploaded_file($tmp,$nom_rep."/".$nom_file)) { 
                        // Si upload OK alors on affiche le message de réussite 
                        chmod($verif_exist, 0755);
                        echo '<b><font color=red>Image uploadée avec succès !</font></b><br>'; 
                        echo '<hr />';
    					?>
    					<script type="text/javascript">
    					opener.document.forms["origine"].elements["choix"].value = "<?=$nom_file?>";
    					setTimeout(function(){window.close()}, 2000);
    					</script>
    					<?
    					echo 'Image: <INPUT type="text" name="liste" value="'.$nom_file.'" onChange="Reporter(this)" disabled >';
                        echo '<hr />'; 
                        
                        //calcul et redimension
                        //*********************
                        $fichierSource  = $nom_rep;
                        $fichierSource .= "/";
                        $fichierSource .= $nom_file;  
                        $fichierSource  = $fichierSource;
                        //hauteur / largeur 
                        $rapport = $infos_img[1] / $infos_img[0];
                        //Dimension de sortie
                        $hauteurDestination = $largeurDestination * $rapport; 
                        
                        if($test_local == 1)
                          {
                           //Réaloue la mémoire dont le serveur à besoin
                           //*******************************************
                           $memoryNeeded = round(($infos_img[0] * $infos_img[1] * $infos_img['bits'] * $infos_img['channels'] / 8 + Pow(2, 16)) * 1.65);
                           $mem_in_use= memory_get_usage();
                           //echo "Mémoire utilisée : $memoryNeeded contre $mem_in_use<br><br>";
                           $test = (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 1;            
                           //solution calculée
                           if(function_exists('memory_get_usage') && memory_get_usage() + $memoryNeeded > (integer) ini_get('memory_limit') * pow(1024, 2))               
                               ini_set('memory_limit', (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 2 . 'M');
                          }
                         
                        //Création de l'image
                        //*******************
                        $source = imagecreatefromjpeg($fichierSource); 
                         
                        $largeurSource = imagesx($source); 
                        $hauteurSource = imagesy($source);
                                           
                        if($largeurSource > $largeurDestination){
                           $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)      
                                or die ("Erreur lors de la création de l'image");  
                        }
                        else{  
                           $im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
                                or die ("Erreur lors de la création de l'image");
                           $largeurDestination = $infos_img[0];
                           $hauteurDestination = $infos_img[1];     
                        }
                           
                        //Redimentionnement
                        //***************** 
                        ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);                                                                                    
                        
                        //Création du fichier de sortie
                        //*****************************
                        $fh=fopen($fichierSource,'w');
                        fclose($fh);
                        ImageJpeg ($im,$fichierSource,$quality);
                        $size_file = filesize($fichierSource);
                        
                        //Test de la taille en kb de l'image définitive
                        //*********************************************
                        $size_file = filesize($fichierSource);
                        $iteration = 0;
                        while($size_file > $kb_max){
                            if($quality > 0)$quality -= 5;
                            else {$quality = "Erreur!!!"; break;}
                           unlink($fichierSource);
                           $fh=fopen($fichierSource,'w');
                           fclose($fh);
                           ImageJpeg ($im,$fichierSource,$quality);
                           $size_file = filesize($fichierSource);
                           $iteration++;
                        }
    
                        echo '<hr />'; 
                           
                    } else { 
                        // Sinon on affiche une erreur système 
                        echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Problème lors de l\'upload !</b><br /><b>Erreur num : ', $_FILES['fichier']['error'], '</b><br /><br /></font>'; 
                    }
                } else { 
                    // Sinon on affiche une erreur pour les dimensions et taille de l'image 
                    echo "<b>La taille du fichier dépasse la taille maximale authorisée de $max_size octets!</b><br />"; 
                }    
            } else { 
                // Sinon on affiche une erreur pour l'extension 
                echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Votre image ne comporte pas l\'extension .jpg !</b><br /></font>'; 
            }
          } else {
                 //Sinon on demande de renommer
                 echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Une image avec le même nom existe déjà! Renommer la photo et réessayer, Merci.</b><br /></font>'; 
           }         
        } else { 
            // Sinon on affiche une erreur pour le champ vide 
            echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br>Aucune photo sélectionnée!</b><br /></font>'; 
        } 
    } 
    ?>
          
    	<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
    		<b>Envoyer le fichier :</b><br /><br />
    		<input type="hidden" name="posted" value="1" /> 
    
    		<font color="#FFFFFF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sélectionner la photo : </font><input name="fichier" type="file"><br><br> 
    		<p align="center"><input type="submit" value="Envoyer la photo" /><input type="button" name="B1" value="Fermer la fenêtre" onClick="window.close()"></p>
    	</form>   
    
    </body>
    </html>

  18. #18
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Alors ce que tu peux faire, c'est donner un id à ta balise input de la page mère, genre :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="choix" readonly="readonly" id="choix" />
    (au passage, mettre disabled sur un élément interdit l'envoi de sa valeur au serveur)

    Et dans ton popup, remplace cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    opener.document.forms["origine"].elements["choix"].value = "<?=$nom_file?>";
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    opener.document.getElementById('choix').value = "<?=$nom_file?>";
    Il ne faut pas aussi que ta fenêtre mère soit fermée ...

    Tu peux aussi supprimer ta fonction reporter().

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    SA MARCHE!!!!!!!!!


    YOUPI !!!!! merci developpez.net!!!! ainsi que les modo vous etes super!!!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Communication entre usercontrol et page
    Par Dragna_x dans le forum Silverlight
    Réponses: 14
    Dernier message: 31/05/2010, 10h32
  2. pb avec popup et page mere
    Par Jacobian dans le forum JSF
    Réponses: 4
    Dernier message: 10/11/2008, 12h21
  3. [AJAX] Transmissions de champs form entre popup et page apelante
    Par mickado dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/02/2008, 20h49
  4. [WebForms]Communication entre popup et page principale
    Par ben_popcorn dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 05/12/2006, 10h33
  5. Communication entre iframe et page
    Par goldorax113 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/05/2006, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo