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

Langage PHP Discussion :

Script d'upload sans perte de qualité


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut Script d'upload sans perte de qualité
    Bonjour,

    Actuellement j'ai un script pour uploed des photos en redimensionant, le script fonctionne correctement mais au niveua de l'affichage il y a une grosse perte de qualité.

    Est ce que vous connaissiez un tutoriel qui pourrais m'aider à gerer ce petit soucis

    PS : Je vous ferais parvenir le script ce soir

    Merci par avance
    Runcafre91

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par runcafre91 Voir le message
    Bonjour,
    Est ce que vous connaissiez un tutoriel qui pourrais m'aider à gerer ce petit soucis

    Runcafre91
    Vas voir ici

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    Sans code source, on ne pourra pas t'aider.

    lemirandais

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut Perte de qualité lors de l'upload
    Citation Envoyé par lemirandais Voir le message
    Sans code source, on ne pourra pas t'aider.

    lemirandais
    Bonjour,

    c'est avec un peux de retard que je met le script que j'utilise pour les upload des images/photos
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    	<head>
    		<title>Mon site de tests</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<meta http-equiv="Content-Style-Type" content="text/css" />
    		<meta http-equiv="Content-Language" content="en" />
    		<link rel="stylesheet" media="screen" type="text/css" href="../styles/main.css" /> 
     
    	</head>
     
    	<body>
    		<div id="conteneur">
    		   <div id="header"><a href='../index.php'></a></div> 
     
    		   <div id="menu"> 
    		   <ul> 
    				<a href="">Acceuil</a>
    				<a href="page.php">Album</a>
    				<a href="upload_photos.php">Ajout</a> 
    			</ul>   	
     
    		   </div>
    		   <div id="corps">
    		<h1>Télécharger vos meilleurs photos</h1>
     
    <?php
    	include('../fonction/connexion.php');
     
    echo "<form action='upload_photos.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br />
    	  <input type='file' name='katofo' size='25' />
    	  <br />
    	  <textarea name='description' rows='10' cols='60'></textarea>
    	  <br /><b />
    	  
    	Rubrique: ";
    $query = "SELECT Rub_ID, Rub_Name FROM rubrique 
    	  ORDER BY Rub_Name DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['Rub_ID'], '" selected="selected">', $row['Rub_Name'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['Rub_ID'], '">', $row['Rub_Name'], '</option>';
      }
    }
     
    echo "</select>
    	<br /><br />
    	
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
     
    {
    $Rub_ID = $_POST['frm_select_rubrique'];
    $Img_Desc = $_POST['description'];
    $query1 = "SELECT Rub_Name FROM rubrique WHERE Rub_ID = '$Rub_ID' ";
    $result1 = mysql_query($query1) or die("ERROR");
    $row_result = mysql_fetch_assoc($result1);
    $Rub_Name = $row_result['Rub_Name'];
     
    $content_dir = "../photos/".$Rub_Name."/"; // dossier où sera déplacé le fichier 
     
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name'];
    $taille_file = filesize($tmp_file);
    $Img_Res = getimagesize($tmp_file);
    $Img_Name= $name_file;
    $Img_Size = $taille_file;
     
     // on vérifie maintenant l'extension 
    $type_file = $_FILES['katofo']['type']; 
     
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') ) 
    { 
    exit("Le fichier n'est pas une image ou elle est trop volumineux"); 
    } 
     // création de la miniature
     
     // pour redimensionner l'image 
    $Rub_Name = 'Rub_Name';
    $chemin = $tmp_file ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png 
     
    $x = 150; 
     
    $y = 150; # Taille en pixel de l'image redimensionnée 
    		# taille en pourcentage
     
    $size = getimagesize($chemin); 
     
    if ( $size) { 
     
    if ($size['mime']=='image/jpeg' ) { 
    $img_big = imagecreatefromjpeg($chemin); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or   $img_mini = imagecreate($x, $y); 
     
    // copie de l'image, avec le redimensionnement. 
     
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 
     
    imagejpeg($img_mini,$chemin ); 
     
    } 
    elseif ($size['mime']=='image/png' ) { 
    $img_big = imagecreatefrompng($chemin); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
     
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or   $img_mini = imagecreate($x, $y); 
     
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 
     
    imagepng($img_mini,$chemin ); 
     
    } 
    elseif ($size['mime']=='image/jpg' ) { 
    $img_big = imagecreatefromjpg($file); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or   $img_mini = imagecreate($x, $y); 
     
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 
     
    imagegif($img_mini,$file ); 
     
    } 
    } 
     
     //fin de la création de la miniature
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    echo '<br>';
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Img_Date = date("Y-m-d");
    $Img_Time = date("H:i:s");
     
     
    $sql = 'INSERT INTO image(Rubr_ID, Img_Name, Img_Desc, Img_Res, Img_Size, Img_Date, Img_Time)VALUES("'.$Rub_ID.'", "'.$Img_Name.'","'.$Img_Desc.'","'.$Img_Res.'","'.$Img_Size.'", "'.date("Y-m-d").'", "'.date("H:i:s").'")';
     
    echo ('<br>');
    echo($sql);
     
    $result = mysql_query($sql);
     
    }
     
    ?> 		
     
    </div>
    		   <div id="footer">Le pied de page</div>
    		</div>
    	</body>
    </html>
    Les photos sont télécharger et dans un dossier selon la rubrique et le chemin est stocké dans lma base de donnée

    Merci de votre aide

    Runcafre91

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    J'ai peut-être un défaut mais j'aime énormément utiliser des sources déjà créer et déjà très connu.
    Pour uploader mes fichiers, j'utilise: verot ==> http://www.verot.net/php_class_upload_download.htm



    Je vais regarder un peu plus près ton code.




    lemirandais

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Bonjour,

    Merci de votre réponse, le problème c'est que je ne suis pas trop habitué à l'utilisation des class

    Par contre j'ai trouvé un bon tutoriel que j'essaye d'adapter a mon projet http://j-reaux.developpez.com/tutori...er-image/#LVII

    Dans mon projet j'utilise deux table un concernant les rubriques et le second pour les images
    La structure de ma base matable c'est celui du tutoriel et j'ai ajouté un champs Rubr_ID pour faire le lien avec ma table Rubrique ci-dessous le code de ma table Rubrique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Structure de la table `rubrique`
    --
     
    DROP TABLE IF EXISTS `rubrique`;
    CREATE TABLE IF NOT EXISTS `rubrique` (
      `Rub_ID` smallint(6) NOT NULL AUTO_INCREMENT,
      `Rub_Name` varchar(80) NOT NULL,
      `Rub_Desc` tinytext,
      `Rub_Date` date DEFAULT NULL,
      `Rub_Time` time DEFAULT NULL,
      PRIMARY KEY (`Rub_ID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    J'ai commencé a modifié le script mais j'ai des erreurs
    Ci-dessous le code du fichier pour l'upload des images ajout/modification/suppression

    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
     
     
    <?php
    // connexion a la base de donnees
       include("../fonction/connexion.php");
    // -----------------------------------------------------------------------------------------------------
    // Répertoire des photos et pictos (déprotégé)
      $chemincourt = '../repimages/';
    // -----------------------------------------------------------------------------------------------------
    // recuperation du nom de la TABLE
       $table=$_GET['CAT'];
    // recuperation du mode de traitement (AJOUTER - MODIFIER - SUPPRIMER)
       $TRAITER=$_GET['TRAITER'];
    // -----------------------------------------------------------------------------------------------------
       if ($TRAITER == 'MODIFIER' || $TRAITER == 'SUPPRIMER') {
          //on recupere aussi le numero de la fiche
          $NUM=$_GET['NUM'];
          // on recupere les donnees la fiche numero NUM- a ajouter la rubique dans la table
          $query = 'SELECT * FROM '.$table.' WHERE NUM = '. $NUM; 
          $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'<br/>'.mysql_error());
          $val = mysql_fetch_array($result);
       }
    // -----------------------------------------------------------------------------------------------------
    ?>
    <!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" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset= UTF-8" />
        <title>MONFICHIER-FORM.php</title>
    </head>
    <body><center>
    <?php
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'AJOUTER') {
    ?>   
    <div>
    <?php
    	include('../fonction/connexion.php');
    echo "<form action='monfichier-form.php' 
    enctype='multipart/form-data'
    	    method='post'> 
    	Rubrique: ";
    $query = "SELECT Rub_ID, Rub_Name FROM rubrique 
    	  ORDER BY Rub_Name DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['Rub_ID'], '" selected="selected">', $row['Rub_Name'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['Rub_ID'], '">', $row['Rub_Name'], '</option>';
      }
    }
     
    echo "</select>";
    ?>
       <form name="AJOUTER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>">
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>">
       AJOUTER<br/>
       Légende :<input type="text" name="COMMENT1" size="50"><br/>
       PHOTO :<input type="FILE" name="PHOTO1" size="50"><br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER">&nbsp;
       <input type="reset" value="Rétablir" name="B2">
    </form>
    </div>
    <?php
    } // fin if AJOUTER
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'MODIFIER') {
    ?>
    <div>
    <?php
    	include('../fonction/connexion.php');
    echo "<form action='monfichier-form.php' 
    enctype='multipart/form-data'
    	    method='post'> 
    	Rubrique: ";
    $query = "SELECT Rub_ID, Rub_Name FROM rubrique 
    	  ORDER BY Rub_Name DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['Rub_ID'], '" selected="selected">', $row['Rub_Name'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['Rub_ID'], '">', $row['Rub_Name'], '</option>';
      }
    }
     
    echo "</select>";
    ?>
    <form name="MODIFIER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>" />
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>" />
       <input type="hidden" name="NUM" value="<?php echo $NUM; ?>" />
       <input type="hidden" name="PHOTO1avant" value="<?php echo $val['PHOTO1']; ?>" />
       <input type="hidden" name="PICTO1avant" value="<?php echo $val['PICTO1']; ?>" />
       MODIFIER<br/>
       Légende :<input type="text" name="COMMENT1" size="50" value="<?php echo $val['COMMENT1']; ?>" /><br/>
       <?php if ($val['PHOTO1'] != "") { ?>
           <img alt="" border="0" src="<?php echo $chemincourt.$val['PHOTO1']; ?>" /><br/>
       <?php } ?>
       PHOTO :<input type="file" name="PHOTO1" size="50" /><br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER" />&nbsp;
       <input type="reset" value="Rétablir" name="B2" />
    </form>
    </div>
    <?php
    } // fin if MODIFIER
    // -----------------------------------------------------------------------------------------------------
    if ($TRAITER == 'SUPPRIMER') {
    ?>
    <div>
    <?php
    	include('../fonction/connexion.php');
    echo "<form action='monfichier-form.php' 
    enctype='multipart/form-data'
    	    method='post'> 
    	Rubrique: ";
    $query = "SELECT Rub_ID, Rub_Name FROM rubrique 
    	  ORDER BY Rub_Name DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['Rub_ID'], '" selected="selected">', $row['Rub_Name'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['Rub_ID'], '">', $row['Rub_Name'], '</option>';
      }
    }
     
    echo "</select>";
    ?>
    <form name="SUPPRIMER" method="post" enctype="multipart/form-data" action="MONFICHIER-TRAITER.php">
       <input type="hidden" name="CAT" value="<?php echo $table; ?>" />
       <input type="hidden" name="TRAITER" value="<?php echo $TRAITER; ?>" />
       <input type="hidden" name="NUM" value="<?php echo $NUM; ?>" />
       <input type="hidden" name="PHOTO1avant" value="<?php echo $val['PHOTO1']; ?>" />
       <input type="hidden" name="PICTO1avant" value="<?php echo $val['PICTO1']; ?>" />
       SUPPRIMER ? (ATTENTION : toute suppression est définitive !)<br/>
       <a href="#" onclick="history.back()">ANNULER</a>&nbsp;
       <input type="submit" value="CONFIRMER" name="CONFIRMER" /><br/>
       <?php echo $val['COMMENT1']; ?>
          <?php if ($val['PHOTO1'] != "") { ?>
          <br/><img alt="" border="0" src="<?php echo $chemincourt.$val['PHOTO1']; ?>">
       <?php } ?>
    </form>
    </div>
    <?php
    } // fin if SUPPRIMER
    // -----------------------------------------------------------------------------------------------------
    ?>
    </center>
    </body></html>
    <?php // liberation de la ressource et deconnexion
    if (($TRAITER == 'MODIFIER') || ($TRAITER == 'SUPPRIMER')) { mysql_free_result($result); }
     
    ?>
    Ci-dessous les deux erreurs qui ressortent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Notice: Undefined index: CAT in E:\wamp\www\monsite\vue\monfichier-form.php on line 9
     
    Notice: Undefined index: TRAITER in E:\wamp\www\monsite\vue\monfichier-form.php on line 11
    Je vous remercie de votre aide

Discussions similaires

  1. [CS5] Vidéo agrandie sans perte de qualité
    Par moumous24 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 20/04/2011, 15h08
  2. Rotation d'image sans perte de qualité
    Par gunth dans le forum C#
    Réponses: 1
    Dernier message: 20/10/2010, 10h18
  3. conversion flv mp3 sans perte de qualité
    Par barbug dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 14/08/2010, 13h02
  4. Inclure un dessin sans perte de qualité
    Par Christophe Genolini dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 17/05/2009, 17h00
  5. Dessiner sur un Jpeg sans perte de qualité
    Par poly128 dans le forum Langage
    Réponses: 3
    Dernier message: 03/09/2007, 21h35

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