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] uploader des pdf


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 19
    Points
    19
    Par défaut [Upload] uploader des pdf
    Bonjour,
    Voila je voudrais pouvoir uploader des pdf dans un repertoire spécifié.Mon code permet tout d'abord de copier le fichier selectionné dans un dossier spécifié, puis de m'en servir par la suite.
    Mon problème est que mon code fonctionne parfaitment pour uploader par exemple un png situer n'importe ou, mais pas les pdf.En effet Lorsque j'essai d'uploder un pdf situer a un autre endroit que mon repertoire où mes fichiers sont stockés, le pdf ne s'upload pas, par contre si je met manuellement mon pdf dans mon repertoire visé et qu'apres je le recupere, celui-ci fonctionne.
    Voici mon code :

    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
     
     
    $content_dir = './photo/'; // dossier où sera déplacé le fichier
    $tmp_file = $_FILES['fond']['tmp_name'];
     
    	if($tmp_file!=""){
     
                            if( !is_uploaded_file($tmp_file) )
    			exit("Le fichier est introuvable");	
     
    		        // on copie le fichier dans le dossier de destination
    			$name_file = $_FILES['fond']['name'];
     
    			if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    			exit("Impossible de copier le fichier dans $content_dir");
     
     
    			mysql_query('INSERT INTO ETC........);
     
    			$message="L'image a bien été ajouté";
    			}
    	else $message="Veuillez selectionner une image";

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    il te manque peut-etre un test sur le format du fichier. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Recuperation du format du fichier -> .pdf
    $type = strrchr($_FILES['fichier']['name'], '.');
     
    //Liste des extension que tu souhaites laisser passer
    $extension = array('.pdf', '.PDF');
     
    //Comparaison entre la liste des autorisés et le format du fichier traité
    if(!in_array($type, $extension)) {
     
        echo 'Le fichier n\'est pas de type .pdf';
     
      }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Je ne pense pas vu qu'il ne rentre meme pas dans mon if($tmp_file!=""), si le fichier est un pdf il m'affiche directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else $message="Veuillez selectionner une image";
    .J'avais mis une vérification mais vu qu'il ne recupéré rien il me disais bien evidemment "le fichier n'est pas un pdf.Mais je n'arrive pas a comprendre pourquoi il recupere jpeg, png ou autre mais pas mes pdf :s

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    Pourrais-tu poster l'ensemble du code qui gère l'upload ainsi que le code du formulaire stp

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Ya du nouveau, mais la j'avoue j'comprend rien lol. J'ai essayé de mettre sur le bureau un pdf qu'il y avais dans mon dossier et qui fonctionné, je l'ai supprimé de mon dossier et je suis donc allez chercher celui de mon bureau et....ca marche, je refait la meme chose avec un autre pdf que j'ai sur mon bureau et...ca marche pas lol.Donc la euh...pas compris ^^

    Tiens le code que tu m'as demandé :
    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
    <?php
    $modele_id=$_GET['modele_id'];
    ?>
    <?php /*------------------------------------------------------------------------------------Ajout-----------------------------------------------------------------------------*/
    if(isset($_POST['envoyer'])){
    	$nom=$_POST['fond_nom'];
    	$hauteur=$_POST['hauteur'];
    	$largeur=$_POST['largeur'];
    	$x=$_POST['x'];
    	$y=$_POST['y'];
     
     
    	if($nom!="" AND $hauteur!="" AND $largeur!="" AND $x!="" AND $y!=""){
     
     
    			$content_dir = './photo/'; // dossier où sera déplacé le fichier
    			$tmp_file = $_FILES['fond']['tmp_name'];
     
     
    			if($tmp_file!=""){
     
    				if( !is_uploaded_file($tmp_file) )
    					exit("Le fichier est introuvable");	
     
    				// on copie le fichier dans le dossier de destination
    				$name_file = $_FILES['fond']['name'];
     
    				if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    					exit("Impossible de copier le fichier dans $content_dir");
     
     
    				mysql_query('INSERT INTO fond_carte VALUES (NULL,"'.$nom.'","'.$name_file.'","'.$x.'","'.$y.'","'.$largeur.'","'.$hauteur.'")') or die(mysql_error());
    				$id_carte_creer=mysql_insert_id();
    				mysql_query('INSERT INTO rempli VALUES ("'.$modele_id.'","'.$id_carte_creer.'")') or die(mysql_error());
     
    				$message="L'image a bien été ajouté";
    			}
    			else $message="Veuillez selectionner une image";		
    	}			
    	else $message="Veuillez remplir les champs obligatoire";									
    }
    /*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/?>
     
    <form method="post" action="" enctype="multipart/form-data">
    	<fieldset class="fieldset">
    	<legend><b>Ajouter un fond à la carte</b></legend>
    	<p>Nom :<input type="text" name="fond_nom" value="" style="margin-left:11px;"/></p>
     
    	<p style="margin-top:30px;"><b>Dimension du fond de la carte :</b></p>
    	<p>Largeur : <input type='text' size="5px" name="largeur" value="" style="margin-right:20px;" />
    	Hauteur : <input type='text' size="5px" name="hauteur" value=""  />
    	</p>
     
    	<p style="margin-top:30px;"><b>Coordonnées :</b></p>
    	<p>X : <input type='text' size="5px" name="x" value="" style="margin-right:20px;" />
    	Y : <input type='text' size="5px" name="y" value="" /></p>
     
    	<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
    	<p>Image de fond : <input type="file" name="fond" style="margin-top:20px;" /></p>
     
     
    	<input class="valider" type="submit" name="envoyer" value=""  />
    	<input type="hidden" id="rec" name="rec"  value="<?php echo $modele_id ?>" />
    	<a class="annuler" title="retour" onclick="document.location.href='home.php?menu=61&amp;modele_id='+document.getElementById('rec').value;''"></a>
    	</fieldset>
    </form>
    <p style="text-align:center"><b><?php echo $message; ?></b></p>

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 33
    Points : 28
    Points
    28
    Par défaut
    Je me suis permis de corriger ta partie UPload de ton code. C'est très largement perfectible mais ça devrait fonctionner.
    J'ai fais ça un peu à la va-vite, je n'ai pas pu tester. Préviens moi si ça merdouille et que se passe t-il (message d'erreur)

    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
    <?php
    $modele_id=$_GET['modele_id'];
     
    //cette condition remplace ton 1er test ISSET() ainsi que tes tests $variable != ""
    //Elle contrôle que tes $_POST existent et qu'ils contiennent bien des valeurs
    if (isset($_POST) && !empty($_POST['fond_nom']) && !empty($_POST['hauteur']) 
      && !empty($_POST['largeur']) && !empty($_POST['x']) && !empty($_POST['y'])) {
     
      //Extraction des variables $_POST
      //$_POST['x'] devient $x, $_POST['largeur'] devient $largeur  etc...
      extract($_POST);  
     
     
     
      //Contrôle si tu envoies bien un fichier
      if (isset($_FILES) && !empty($_FILES['fond']['tmp_name'])) {
     
        $content_dir="../photo/"; // dossier où sera déplacé le fichier
        $nom = $_FILES['fond']['name']; //le nom de ton fichier (par exemple : image.jpg)
        $tmp_file = $_FILES['fond']['tmp_name']; //le nomdu fichier dans le dossier tmp
        $type = strrchr($_FILES['fond']['name'], '.'); //l'extension du fichier (par exemple : .jpg)
        $poids = filesize($_FILES['fond']['tmp_name']); //le poids du fichier en octet
     
        //liste des extensions que tu traiteras
        $extension = array('.png', '.gif', '.jpg', '.jpeg', '.pdf');
     
        //Poids maximum autorisé pour l'upload (voir dans le fichier PHP.ini : généralement 2mo)
        $maxTaille = 2000000;
     
        //Corrige les caractères avec accents et remplace les espaces et caractères speciaux par -
        //Evite les problèmes par la suite.
        $nom = strtr($nom,
         'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
         'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
        $nom = preg_replace('/([^.a-z0-9]+)/i', '-', $nom);
     
        //On contrôle que le fichier est bien présent dans le dossier tmp
        if ( !is_uploaded_file($tmp_file) ) 
          exit("Le fichier est introuvable");
     
        //On contrôle si l'extension est présente dans ta liste $extension
        if(!in_array($type, $extension)) 
          exit("Le format du fichier n\'est pas autorisé");
     
        //On contrôle que le poids est effectivement bon
        if($size>$maxTaille)
          exit("Le fichier est trop gros");
     
        //Si tout se passe bien on Upload dans ton dossier de destination.
        if (move_uploaded_file($tmp_file, $content_dir.$nom)) {
     
          /*
          * ta requete SQL
          */
     
          $message="Le fichier a bien été ajouté";  
        }
        else {
          $message="Impossible de copier le fichier dans ".$content_dir);
        }        
      }
      else {
        $message="Veuillez selectionner une image";    
      } 
    }
    else {
      $message="Veuillez remplir les champs obligatoire";
    }
     
    ?>
     
    <form method="post" action="" enctype="multipart/form-data">
    	<fieldset class="fieldset">
    	<legend><b>Ajouter un fond à la carte</b></legend>
    	<p>Nom :<input type="text" name="fond_nom" value="" style="margin-left:11px;"/></p>
     
    	<p style="margin-top:30px;"><b>Dimension du fond de la carte :</b></p>
    	<p>Largeur : <input type='text' size="5px" name="largeur" value="" style="margin-right:20px;" />
    	Hauteur : <input type='text' size="5px" name="hauteur" value=""  />
    	</p>
     
    	<p style="margin-top:30px;"><b>Coordonnées :</b></p>
    	<p>X : <input type='text' size="5px" name="x" value="" style="margin-right:20px;" />
    	Y : <input type='text' size="5px" name="y" value="" /></p>
     
    	<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
    	<p>Image de fond : <input type="file" name="fond" style="margin-top:20px;" /></p>
     
     
    	<input class="valider" type="submit" name="envoyer" value=""  />
    	<input type="hidden" id="rec" name="rec"  value="<?php echo $modele_id ?>" />
    	<a class="annuler" title="retour" onclick="document.location.href='home.php?menu=61&amp;modele_id='+document.getElementById('rec').value;''"></a>
    	</fieldset>
    </form>
    <p style="text-align:center"><b><?php echo $message; ?></b></p>

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Désolé de répondre que maintenant :s
    Alors bah c'est sur que ton code est plus pointu que le mien mais malheureusement le résultat est le même, il m'affiche le else de "Veuillez sélectionner une image :s
    Et oui oui j'ai bien reregardé j'essaie d'uploader un .pdf lol mais rien a faire...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Mdr j'ai trouvé ^^

    <input type="hidden" name="MAX_FILE_SIZE" value="500000" />

    Merci en tout cas pour le code c'est plus propre qu'avant.

    Merci

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

Discussions similaires

  1. [Upload] Upload de fichiers PDF
    Par magda62 dans le forum Langage
    Réponses: 10
    Dernier message: 02/05/2009, 07h13
  2. [Upload] Upload de fichiers PDF
    Par Travisnux dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2007, 09h49
  3. Réponses: 2
    Dernier message: 22/05/2006, 00h07
  4. [Upload] Droits des fichiers
    Par flexx dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2005, 19h14

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