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 :

[Upload] Extraction du titre de l'image uploadée


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut [Upload] Extraction du titre de l'image uploadée
    bonsoir à tous,

    après moultes recherches infructueuses, je finis par vous demander comment on peut récupérer le titre de l'image uploadée, sachant que tout va bien pour l'upload en lui-même.
    La difficulté pour moi est que, lorsque j'upload, j'ai le chemin absolu qui s'affiche dans le champ de récupération. Normal me direz-vous mais très ennuyeux car il faut que je récupère uniquement la fin du chemin absolu, c'est-à-dire uniquement : image.jpg

    Pour vous éclairer, voici mon code simplifié du formulaire de chargement :

    Code html : 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
    <form method="post" action="chargement_photo.php" enctype="multipart/form-data">
    <table>
    <tr>
      <td>
          <input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />
          <input type="file" name="mon_image" size="70" id="mon_image" />
      </td>
    </tr>
    <tr>
      <td>
          <input type="submit" name="submit" value="Envoyer" />
      </td>
    </tr>
    <tr>
      <td height="35%" bgcolor=#000000></td>
    </tr>
    </table>
    </form>

    voici le code simplifié de mon fichier 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    $dossier = 'photos/';
    $fichier = basename($_FILES['mon_image']['name']);
    $taille_maxi = 1000000000;
    $taille = filesize($_FILES['mon_image']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG');
    $extension = strrchr($_FILES['mon_image']['name'], '.'); 
     
    //connexion à la base mysql club et message si probleme
    $connexion=mysql_connect ('localhost','root','') or die ("impossible de se connecter à la base de données");
    mysql_select_db ('phototheque');
     
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions))
    {
         $erreur = "...fichier de type png, gif, jpg, jpeg, JPG";     
    }
    if($taille>$taille_maxi)
    {
         $erreur = "le fichier est trop gros...";
    }
     
    //On formate le nom du fichier
    $fichier = strtr($fichier,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
     // a ce stade $fichier devrait exactement correspondre au nom sur le disque
    if (file_exists ($dossier . $fichier)) 
    	{
    	 $erreur = "gardez si possible le même nom en...";
    		}
    		if(!isset($erreur))
    		{
    		if(move_uploaded_file($_FILES['mon_image']['tmp_name'], $dossier . $fichier))
    			{
    			echo "chargement réussi !!!";
    			}
    		else
    		{
    		echo "ehec du chargement\n";
    		}
    	}
    else
    echo $erreur;
     
    //fermeture de la connection
    mysql_close($connexion);
     
    ?>
    voilà où j'en suis... ça fonctionne très bien...
    mais, pour la récupération du nom de l'image uploadée (et non celui de l'image donné par le photographe), je vois vraiment pas.

    quelqu'un aurait-il une piste, un tutoriel à me conseiller ?

    merci d'avance...
    (et probablement à demain matin)

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu peux récupérer le nom réel de l'image grâce au champs name de $_FILES (tout comme tmp_name)

  3. #3
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    L'upload de fichier j'en est chier, mais beaucoup moins quand j'ai coder mon truc moi même, sans le récuperer.


    La réponse devrait être echo $fichier; ...

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Attention, selon ton code tu récupèreras le nom de ton fichier avec $fichier mais pas son extension.Pour l'avoir il faudra aussi prendre $extension

  5. #5
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    bon, j'ai retenu le maximum concernant vos remarques et, tout fonctionne : l'enregistrement de la photo et le chargement de la photo. J'ai donc procédé à la réunion des deux dans un même formulaire mais... je me fais boulé concernant l'upload (encore une fois!!!). Il me dit en effet que l'extension n'est pas bonne (absente en réalité)... J'ai lu, relu et re-relu mon code... je vois pas !!!

    voici en tout cas, le résultat du 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
    <?
     
    $titre=$_GET['titre'];
    $sujet=$_GET['sujet'];
    $legende=$_GET['legende'];
    $format=$_GET['format'];
    $heure=$_GET['heure'];
    $date=$_GET['date'];
    $IDP=$_GET['IDP'];
    $IDS=$_GET['IDS'];
    $IDT=$_GET['IDT'];
    $fichier=$_GET['mon_image'];
     
    $connexion=mysql_connect ('localhost','root','') or die ("impossible de se connecter à la base de données");
    mysql_select_db ('phototheque');
     
    if($titre=='')
    {
    	echo "Votre enregistrement doit comporter un titre";
    	exit();
    }
    elseif(preg_match ('/[0-9][0-9]h[0-9][0-9]/', $heure) == 0)
    {
    	echo "L'heure doit être enregistrée sous la forme : 12h43";
    	exit();
    }
    elseif(preg_match ('/[0-2][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]/', $date) == 0)
    {
    	echo "La date doit être enregistrée sous la forme : AAAA-MM-JJ";
    	exit();
    }
    elseif($IDP=='')
    {
    	echo "Revenez à la page précédente et cliquez sur ...";
    	exit();
    }
    elseif($IDS=='')
    {
    	echo "Revenez à la page précédente et cliquez sur ...";
    	exit();
    }
    elseif($IDT=='')
    {
    	echo "Revenez à la page précédente et cliquez sur ...";
    	exit();
    }
     
    $dossier = 'photos/';
    $fichier = basename($_FILES['mon_image']['name']);
    $taille_maxi = 1000000000;
    $taille = filesize($_FILES['mon_image']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG');
    $extension = strrchr($_FILES['mon_image']['name'], '.'); 
     
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
    	echo "Vous devez charger un fichier de type png, gif, jpg, jpeg, JPG";
    	exit();
    }
    elseif($taille>$taille_maxi)
    {
    	echo "le fichier est trop gros...";
    	exit();
    }
     
    $fichier = strtr($fichier,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
    if (file_exists ($dossier . $fichier)) 
    {
    	echo "gardez si possible le même nom en ...";
    	exit();
    }
    elseif(!isset($erreur))
    {
    	if(move_uploaded_file($_FILES['mon_image']['tmp_name'], $dossier . $fichier))
    	{
    	echo "chargement réussi !!!";
    	exit();
    	}
    }
    else
    echo "raté apparement";
    	exit();
     
    $query=mysql_query ("INSERT INTO photo (titre,sujet,legende,format,heure,date,IDP,IDS,IDT,titre_im) VALUES 
    ('" . $titre . "','" . $sujet . "','" . $legende . "','" . $format . "','" . $heure . "','" . $date . "','" . $IDP . "','" . $IDS . "','" . $IDT . "','" . $fichier . "')") 
    or die ("si ça persiste, contactez ...");
     
    mysql_close($connexion);
     
    ?>
    voilà, pourriez-vous m'indiquer où et quoi je dois rajouter car, toutes mes tentatives vaines (et désespérées sur la fin) me décourage...

    merci bien pour les rensignements forts attendus...
    cordialement

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je te conseille pour récupérer l'extension de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $extension = strrchr($_FILES['mon_image']['name'], '.');
    par le code ici : Comment séparer un nom de fichier de son extension ?

    D'ailleurs tu peux le faire pour récupérer ton nom de fichier.

  7. #7
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    eh bien... pas simple pour un bleu...

    j'en es conclu que je dvai carrément modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $dossier = 'photos/';
    $fichier = basename($_FILES['mon_image']['name']);
    $taille_maxi = 1000000000;
    $taille = filesize($_FILES['mon_image']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG');
    $extension = strrchr($_FILES['mon_image']['name'], '.');
    pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $path_parts = pathinfo($fichier);
    print_r($path_parts);
    $taille_maxi = 1000000000;
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG');
    impeccable, j'obtiens bien à l'affichage le nom du fichier et celui de son extension. En revanche, je reste bloquer car je n'arrive pas à formuler la solution (ça me rend fou...)


    merci pour l'aide en tout cas, ça débloque bien... une idée pour me faire piger ?

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ben tu fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $path_parts = pathinfo($fichier);
    print_r($path_parts);
    $taille_maxi = 1000000000;
    $extensions = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
    $fichier = $path_parts['basename'];
    $extension = $path_parts['extension'];
    Et le reste est identique

  9. #9
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    merci beaucoup (même si ça me fait chier de pas trouver tout seul... )
    mais, j'ai emplacé comme tu viens de me le préciser... et je suis toujours refoulé pour l'extension (alors que la photo s'appelle simplement cam.jpg).

    du coup, vraiment pas crédible mon code... j'ai regardé mon formulaire et... je vois rien d'anormal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000000" />
    <input TYPE="file" NAME="mon_image" SIZE="60" ID="mon_image" />
    je devrai peut-être changer de matière...

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je te propose de mettre en commentaire tout ton code et de tester avec celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $path_parts = pathinfo($_FILES['mon_image']['name']);
    print_r($path_parts);
    $taille_maxi = 1000000000;
    $extensions = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
    print_r($extensions);
    echo $fichier = $path_parts['basename'];
    echo $extension = $path_parts['extension'];
    echo in_array($extension, $extensions);
    On verra ce qu'il se passe réellement.

  11. #11
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    donc, j'ai TOUT mis en commentaire faisant que mon fichier se réduisait à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $path_parts = pathinfo($_FILES['mon_image']['name']);
    print_r($path_parts);
    $taille_maxi = 1000000000;
    $extensions = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
    print_r($extensions);
    echo $fichier = $path_parts['basename'];
    echo $extension = $path_parts['extension'];
    echo in_array($extension, $extensions);
    ?>
    et j'ai obtenu comme avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [basename] => ) Array ( [0] => png [1] => gif [2] => jpg [3] => jpeg [4] => JPG )
    voili voilo...

    et quand je garde le reste du code et que je mets ce que tu m'as donné en dernier lieu, j'ai aussi cette ligne (array ... ) et mon message stipulant le blocage // l'extension.

    C'est ce que tu pensais ?

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as soumis le formulaire ? Car là tu as aucune image

  13. #13
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    eh bien oui pourtant... je piges pas (le même que tout à l'heure : cam.jpg) et rien du tout !!!

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ok donc on va vérifier que l'image a été uploadée :
    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
    if(isset($_POST['submit']))
    {
        echo 'Formulaire soumis<br/>';
        if(is_uploaded_file($_FILES['mon_image']['tmp_name']))
        {
            echo 'Image présente<br/>';
            $path_parts = pathinfo($_FILES['mon_image']['name']);
            print_r($path_parts);
            $taille_maxi = 1000000000;
            $extensions = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
            print_r($extensions);
            echo $fichier = $path_parts['basename'];
            echo $extension = $path_parts['extension'];
            echo in_array($extension, $extensions);
        }
    }
    Ca te donne quoi ?

  15. #15
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    j'ai donc mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if(isset($_POST['submit'])) 
    {  echo 'Formulaire soumis<br/>'; 
    if(is_uploaded_file($_FILES['mon_image']['tmp_name']))  
    {  echo 'Image présente<br/>'; 
    $path_parts = pathinfo($_FILES['mon_image']['name']); 
    print_r($path_parts); 
    $taille_maxi = 1000000000; 
    $extensions = array('png', 'gif', 'jpg', 'jpeg', 'JPG'); 
    print_r($extensions); 
    echo $fichier = $path_parts['basename'];
    echo $extension = $path_parts['extension']; 
    echo in_array($extension, $extensions); 
    } 
    }
    à la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    elseif(!isset($erreur))
    {
    	if(move_uploaded_file($_FILES['mon_image']['tmp_name'], $dossier . $fichier))
    	{
    	echo "chargement réussi !!!";
    	exit();
    	}
    }
    else
    echo "raté apparement";
    	exit();
    et j'obtiens toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [basename] => ) Array ( [0] => png [1] => gif [2] => jpg [3] => jpeg [4] => JPG )
    ça te parle un peu plus...? Moi, lââââchéééé....

  16. #16
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    Donc, j'ai corrigé pas mal de truc et ça marche !!!

    voici mon formulaire simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form ACTION="f_traitement_photo.php" METHOD="POST" NAME="f_saisie_photo" ENCTYPE="multipart/form-data">
     
    <INPUT TYPE="TEXT" NAME="titre" SIZE="60">
    <INPUT TYPE="TEXT" NAME="sujet" SIZE="60">
    <INPUT TYPE="TEXT" NAME="legende" SIZE="60">
    <INPUT TYPE="TEXT" NAME="format" SIZE="60">
    <INPUT TYPE="TEXT" NAME="heure" SIZE="60">
    <INPUT TYPE="TEXT" NAME="date" SIZE="60">
    <INPUT TYPE="TEXT" NAME="IDP" SIZE="60">
    <INPUT TYPE="TEXT" NAME="IDS" SIZE="60">
    <INPUT TYPE="TEXT" NAME="IDT" SIZE="60">
    <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000000" /><input TYPE="file" NAME="mon_image" SIZE="60" ID="mon_image" />
    j'avais une faute dans mon enctype.... (ahhhh!!!!)

    et voici mon fichier de traitement simplifié :

    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
    <?
    $titre=$_POST['titre'];
    $sujet=$_POST['sujet'];
    $legende=$_POST['legende'];
    $format=$_POST['format'];
    $heure=$_POST['heure'];
    $date=$_POST['date'];
    $IDP=$_POST['IDP'];
    $IDS=$_POST['IDS'];
    $IDT=$_POST['IDT'];
    $fichier=$_POST['mon_image'];
     
    $connexion=mysql_connect ('localhost','root','') or die ("impossible de se connecter à la base de données");
    mysql_select_db ('phototheque');
     
    if(isset($_POST[$titre==''])){
    	echo "Votre enregistrement doit comporter un titre";
    	exit();}
     
    elseif(preg_match ('/[0-9][0-9]h[0-9][0-9]/', $heure) == 0){	
    	echo "L'heure doit être enregistrée sous la forme : 12h43";
    	exit();}
     
    elseif(preg_match ('/[0-2][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]/', $date) == 0){
    	echo "La date doit être enregistrée sous la forme : AAAA-MM-JJ";
    	exit();}
     
    elseif($IDP==''){
    	echo "Votre enregistrement doit comporter le numéro de saisie du photographe";
    	exit();}
     
    elseif($IDS==''){
    	echo "Votre enregistrement doit comporter le numéro de saisie du support";
    	exit();}
     
    elseif($IDT==''){
    	echo "Votre enregistrement doit comporter le numéro de saisie du type";
    	exit();}
     
    $dossier = 'photos/';
    $path_parts = pathinfo($_FILES['mon_image']['name']);
    print_r($path_parts);
    $taille_maxi = 1000000000;
    $extensions = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
    print_r($extensions);
    echo $fichier = $path_parts['basename'];
    echo $extension = $path_parts['extension'];
    echo in_array($extension, $extensions);
     
    if(!in_array($extension, $extensions))
    {
    	echo "Vous devez charger un fichier de type png, gif, jpg, jpeg, JPG";
    	exit();
    }
    elseif($taille>$taille_maxi)
    {
    	echo "le fichier est trop gros...";
    	exit();
    }
     
    $fichier = strtr($fichier,
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
    if(file_exists ($dossier . $fichier)) 
    {
    	echo " le fichier existe déjà, donnez-lui un autre nom";
    	exit();
    }
    elseif(!isset($erreur))
    {
    	if(move_uploaded_file($_FILES['mon_image']['tmp_name'], $dossier . $fichier))
    	{
    	echo "chargement réussi !!!";
    	}
    }
    else
    {
    echo "raté apparement";
    	exit();
    }
     
    $query=mysql_query ("INSERT INTO photo (titre,sujet,legende,format,heure,date,IDP,IDS,IDT,titre_im) VALUES 
    ('" . $titre . "','" . $sujet . "','" . $legende . "','" . $format . "','" . $heure . "','" . $date . "','" . $IDP . "','" . $IDS . "','" . $IDT . "','" . $fichier . "')") 
    or die ("l'insertion n'a pas été réalisée");
     
    mysql_close($connexion);
     
    ?>
    j'ai tout remis en POST (c'est mieux et obligatoire...) et j'ai surtout viré un exit() après le chargement de la photo (ça n'allait pas du coup jusqu'à la requête SQL)

    Merci en tout cas à vous tous pour votre aide précieuse !!!

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

Discussions similaires

  1. [Image][Upload] Controler la taille de l'image
    Par cootchy dans le forum Multimédia
    Réponses: 1
    Dernier message: 09/05/2007, 11h22
  2. [Upload] droit lecture sur image uploadée
    Par Mitaka dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2006, 11h52
  3. [Upload] Renommer une image uploadée
    Par Empty_body dans le forum Langage
    Réponses: 4
    Dernier message: 05/01/2006, 06h51
  4. [Upload] probleme de récupération de fichier image
    Par BernardT dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 01h12
  5. Réponses: 8
    Dernier message: 19/04/2005, 12h04

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