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] PB avec is_uploaded_file


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut [Upload] PB avec is_uploaded_file
    Bonjour,
    je rencontre un probléme avec is_uploaded_file(), elle me retourne false lorsque que le fichier depasse une certaine taille. J'ai lu un topic concernant ce probléme mais je ne parvient pas a trouver le beug. (http://www.developpez.net/forums/sho...d.php?t=272398)
    La variable max_allowed_packed a été modifié a 70M dans my.ini.
    J'ai aussi modifié upload_max_filesize à 70M ainsi que post_max_size dans php.ini.

    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
     <HTML>
    <HEAD></HEAD>
    <BODY>
    <H2><center><u>AJOUTER UN DOCUMENT ARCHIVE</u></center></H2>
     
    <?php
     
    include ("transfertArchive.php");
    if ( isset($_FILES['fic']) )
    {
    	transfertArchive($_FILES);
    }
    include ("connexion.php");
     
    // On indique que l'on va envoyer des donnees  grace au formulaire ci-dessous
    echo "<form enctype=multipart/form-data action=# method=post>";
     
    $ReqSql = "SELECT * FROM type_archive";
    $ReqSql = mysql_query($ReqSql) or die("Erreur SQL : <br>".$ReqSql);
    echo "<b>Type de document Archivé :  </b>";
     
    $_POST['motcle'];
    $_POST['resume'];
     
     
    $_POST['rangee'];
    $_POST['date'];
    $_POST['cd'];
    $_POST['type'];
     
     
    // On alimente la liste deroulante des types
    echo "<SELECT name=type>";
    echo "<option>".$_POST['type']."</option>";
    while($val=mysql_fetch_array($ReqSql)) {
       echo "<option>".$val['libelle_archive']."</option>\n";
    }
    echo "</SELECT>";
     
    // On alimente la liste deroulante des allées
    $ReqSql = "SELECT * FROM allee_archive";
    $ReqSql = mysql_query($ReqSql) or die("Erreur SQL : <br>".$ReqSql);
    echo "<br><br><b>Allee :  </b>";
     
    // On alimente la liste deroulante des types
    echo "<SELECT name=allee>";
    echo "<option>".$_POST['allee']."</option>";
    while($val=mysql_fetch_array($ReqSql)) {
       echo "<option>".$val['libelle_allee']."</option>\n";
    }
    echo "</SELECT>";
     
    // **** Formulaire invisible permmettant de fixer la taille max du fichier 
    echo "<input type=hidden name=MAX_FILE_SIZE value=250000000 />";
    echo "<BR><br><b>Etagére :</b>";
    echo "<input type=text size=5 name=etagere value=".$_POST['etagere']."><BR>";
    echo "<BR><b>Rangée :</b>";
    echo "<input type=text size=5 name=rangee value=".$_POST['rangee']."><BR>";
    echo "<BR><b>Date d'archivage numérique :</b>";
    echo "<input type=text size=10 name=date value=".$_POST['date']."><BR>";
    echo "<BR><b>Numéro de CD :</b>";
    echo "<input type=text size=5 name=cd value=".$_POST['cd']."><BR><br>";
    echo "<br><b>Veuillez saisir un ou plusieurs mot(s) clé(s) (10 MOTS AU MAXIMUM) permettant de rechercher ce document : </b>";
    echo "<br><b>Les mot clés seront séparés par des points virgules (;) : </b><br>";
    echo "<input type=text size=60 name=motcle value=".$_POST['motcle']."><BR><br>";
    echo "<br><b>Saisissez un court resumé de ce document : </b>";
    echo "<BR><TEXTAREA name=resume rows=4 cols=60>".$_POST['resume']."</TEXTAREA><BR>";
     
    ?>
     
    <br><b>Selectionner le fichier a enregister : </b><br>
    <!-- Pemet de selectionner un fichier par l'intermediaire d'une fenetre : "Parcourir..." -->
    <input type="file" name="fic" size=25 /><br><br>
    <center><input type="submit" value="Valider">
    <input type="reset" value="Annuler"></center>
    </FORM>
    </BODY>
    </HTML>
    fonction transfertArchive() :

    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
     
    <?php
    ini_set('memory_limit', 8000000); // en octets
    set_time_limit(600); // en secondes
    // Fonction pour stocker le fichier
    function transfertArchive($FILE)
    {
    include ("connexion.php");
     
     
    $description=@$_POST['motcle'];
    $resume=@$_POST['resume'];
    $allee=@$_POST['allee'];
    $etagere=@$_POST['etagere'];
    $rangee=@$_POST['rangee'];
    $date=@$_POST['date'];
    $cd=@$_POST['cd'];
    $type=@$_POST['type'];
     
     
     
    if($type==null)
    {
    	echo "<SCRIPT LANGUAGE=JavaScript>";
    	echo "alert('Erreur, le type de document n\'est pas renseigné !')";
    	echo "</SCRIPT>";
    	return false;
    }
     
    if($description==null)
    {
    	echo "<SCRIPT LANGUAGE=JavaScript>";
    	echo "alert('Erreur, les mots clés n\'ont pas été remplis !')";
    	echo "</SCRIPT>";
    	return false;
    }
     
    if($resume==null)
    {
    	echo "<SCRIPT LANGUAGE=JavaScript>";
    	echo "alert('Erreur, le résumé n\'est pas remplis correctement !')";
    	echo "</SCRIPT>";	
    	return false;
    }
     
    $ret = false;
    $fic_blob = '';
    $fic = 0;
    $fic_type = '';
    $fic_nom = '';
    $taille_max = 70000000;
    $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
     
    if ( !$ret )
    {
    	echo "<SCRIPT LANGUAGE=JavaScript>";
    	echo "alert('Erreur, aucun fichier selectionné !')";
    	echo "</SCRIPT>";	
    	return false;
    }
    else
    {
    	// Le fichier a bien été reçu
    	$fic_taille = $_FILES['fic']['size'];
     
    	// On test la taille du fichier
    	if ( $fic_taille > $taille_max )
    	{
    		echo "Trop gros !";
    		return false;
    	}
    	// On recup le type de fichier
    	$fic_type = $_FILES['fic']['type'];
    	// On recup le nom du fichier
    	$fic_nom = $_FILES['fic']['name'];
     
    	// On test si le fichier est deja present dans la BDD par rapport au nom
    	$req = "SELECT fic_nom FROM document_doc_archive;";
    	$req = mysql_query ($req) or die (mysql_error ());
    	while($val=mysql_fetch_array($req)) {
    		if($val['fic_nom']==$fic_nom){
    			echo "<SCRIPT LANGUAGE=JavaScript>";
    			echo "alert('Erreur, le nom de ce fichier est deja present dans la base !')";
    			echo "</SCRIPT>";	
    		return false;
    	}
    	}
    	// On recup le dernier identifiant du document
    	$req = "SELECT max(id_doc) FROM document_doc_archive;";
    	$req = mysql_query ($req) or die (mysql_error ());
    	$max=mysql_fetch_array($req);
     
    	if($max['max(id_doc)']==null)
    		$max=1;
    	else
    		$max=$max['max(id_doc)']+1;
     
    	//On recup le id_acte corresopndant au type de document
    	$req= "SELECT id_archive FROM  type_archive WHERE libelle_archive='".$type."';";
    	$req = mysql_query ($req) or die (mysql_error ());
    	$numArchive=mysql_fetch_array($req);
     
    	/****   $_FILES['fic']['tmp_name'] 
    	*****   permet de recup temporairement le fichier dans 
    	*****   un repertoire sur le server
    		***** On ne peut passer le contenu d'un fichier dans une variable
    	***** On utilise FILE_GET_CONTENTS 
    	****/
    	$fic_blob = file_get_contents ($_FILES['fic']['tmp_name']);
     
        //On change le format de la date en YYYY-MM-JJ
        list($jours, $mois, $an) = split("[-./]",$date); 
        $date=$an."-".$mois."-".$jours; 
     
     
    	$req = "INSERT INTO document_doc_archive VALUES(".
    			$max.", '".
    			$fic_nom."', '".
    			$fic_taille."', '".
    			$fic_type."', '".
    			addslashes ($fic_blob)."','".
    			$description."', '".
    			$resume."', '".
    			$allee."', '".
    			$etagere."', '".
    			$rangee."', '".
    			$date."', '".
    			$cd."', '".
    			$numArchive['id_archive'].
    			"');";
     
     
    	$ret = mysql_query ($req) or die (mysql_error ());
    	echo "<SCRIPT LANGUAGE=JavaScript>";
    	echo "alert('Opération réussi, ducument enregistré !')";
    	echo "</SCRIPT>";	
     
    	return true;
     
     
    	}
    }
    ?>
    Merci de votre aide !

  2. #2
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    hello,
    si tu generes ton form avec : echo "<form enctype=multipart/form-data action=# method=post>";
    j ai peur qu il manque les "" dans ton html ça peut pitetre posé probleme donc test: echo "<form enctype=\"multipart/form-data\" action=\"#\" method=\"post\">";
    ++

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Ca ne change rien, c quand le fichier depasse une certaine taille que ca plante a partir de 3Mo a pres. En dessous de cette pas de soucis, ca marche nikel...

  4. #4
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut
    As-tu essayé d'augmenter ceci :

    dans php.ini, modifier la taille de memory_limit

    J'en ai eu besoin pour une interface de webmail concernant des pièces jointes.

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Lis ceci:

    developpez.net

Discussions similaires

  1. [Upload] problème avec is_uploaded_file
    Par loopsy dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2007, 18h57
  2. [Upload] Probleme avec le transfer
    Par ozzmax dans le forum Langage
    Réponses: 5
    Dernier message: 08/02/2006, 19h27
  3. [Upload] Souci avec un script d'upload
    Par Ludo75 dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 14h16
  4. [Upload] Problème avec Force download
    Par bannik dans le forum Langage
    Réponses: 8
    Dernier message: 30/12/2005, 12h27
  5. [AJAX] upload fichiers avec AJAX
    Par jibouze dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2005, 21h04

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