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] Upload Taille limite


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut [Upload] Upload Taille limite
    Bonjour,

    Jai le code suivant:
    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
    $AUTH_EXT= array(".doc", ".pdf", ".jpg", ".jpeg", ".xls", ".zip", ".tif", ".rar");
      function isExtAuthorized($ext){
    		global $AUTH_EXT;
    		if(in_array($ext, $AUTH_EXT)){
    			return true;
    		}else{
    			return false;
    		}
    	}
    	$content_dir= $RECUP_TYPE."/"; // dossier où sera déplacé le fichier
      $tmp_file= $_FILES['fichier']['tmp_name'];
     
      if( !is_uploaded_file($tmp_file) ){
      	exit("File not found");
      }
      $name_file= $_FILES['fichier']['name'];
      $name_file= clean_file_name($name_file);
      $extension= strrchr($name_file, ".");
      $RECUP_TEST_CERTIF= trim($RECUP_TEST_CERTIF,"-");
      $name_file= $RECUP_TYPE."_".$RECUP_TEST_CERTIF."_".$RECUP_REF_SERPIE."_".$RECUP_REF_BDL.$extension;
     
    	echo "<br />Nom :".$name_file;
      // on vérifie maintenant l'extension
      //$type_file = $_FILES['fichier']['type'];
      if(!isExtAuthorized($extension)){
      	exit("Wrong file extension : jpg, jpeg, pdf, doc, xls, zip, tif, rar<br />".$type_file);
      }
      // on copie le fichier dans le dossier de destination
      if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ){
      	exit("Cannot copy file to $content_dir");
      }
    Jai vu dans le forum la meme question que moi mais en essayant "ini_set("upload_max_filesize","16");", ca ne change rien jai toujours le message derreur File not found (Message prevu dans mon code if( !is_uploaded_file($tmp_file) ){})

    Help !

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu peux tester lexistence avant pour voir #
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_FILES['fichier']))
    aussi dans ton formulaire as tu mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="POST" action="page.php" enctype="multipart/form-data">

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut
    Je suis bien en "multipart/form-data".

    Ensuite je comprends pas pourquoi je devrais tester !
    Dapres ce que je comprends de mon pb le fichier ne peut pas etre upload parce quil depasse la taille autorise dans php.ini.

  4. #4
    Invité
    Invité(e)
    Par défaut
    tester lexistence pour voir sil a reçu ton psot, sil na rien reçu c logik quil ne puisse pas uploader je pense pas que ça vienne de la mais c'ets pour ecarter cette possibilité.
    ensuite essai de faire le traitement inverse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (is_uploaded file ...)
    {
    //traitement
    }
    else
    {
    //erreur
    }
    as tu essayé avec un fichier de qq kilo pour voir si ça marche?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut
    Avec un fichier de moins de 2Mo ca marche.
    Cest pour ca que jessaie de trouver une solution pour contourner la taille limite ...
    Jai essaye avec <input type="hidden" name="MAX_FILE_SIZE" value="15000000" />
    Il ne veut rien savoir !

  6. #6
    Invité
    Invité(e)
    Par défaut
    ok alors plsuieurs chose : peux tu modifié le fichier php.ini directement?
    si non : il faut modifier plusieurs choses pour que ça marche :
    - la limitation du poid du document upload_max_filesize
    - la limitation du temps dexecution set-time-limit
    comme tu la dis il faut modifier ces 2 valeurs avec ini_set;
    pour etre sur que ini_set fasse les modif tu vérifie avec if(ini_set (...)), en effet ça te renvoie false si ça na pas fonctionné

    ini_set("upload_max_filesize","16"); ---> soit 16M (je crois que ça marche à verifie soit la valeur en octets 15000000 (ton exemple)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut
    Bon jai utilise un autre 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
    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
    $MAX_SIZE = 15000000;
    	$AUTH_EXT= array(".doc", ".pdf", ".jpg", ".jpeg", ".xls", ".zip", ".tif", ".rar");
      function isExtAuthorized($ext){
    		global $AUTH_EXT;
    		if(in_array($ext, $AUTH_EXT)){
    			return true;
    		}else{
    			return false;
    		}
    	}
    if(!empty($_FILES["fichier"]["name"])){
     
    	// dossier où sera déplacé le fichier
    	$content_dir= $RECUP_TYPE."/";
    	// Nom du fichier choisi:
    	$name_file= $_FILES['fichier']['name'];
      $name_file= clean_file_name($name_file);
    	// Nom temporaire sur le serveur:
    	$nomTemporaire = $_FILES["fichier"]["tmp_name"] ;
    	// Type du fichier choisi:
    	$typeFichier = $_FILES["fichier"]["type"] ;
    	// Poids en octets du fichier choisit:
    	$poidsFichier = $_FILES["fichier"]["size"] ;
    	// Code de l'erreur si jamais il y en a une:
    	$codeErreur = $_FILES["fichier"]["error"] ;
    	// Extension du fichier
    	$extension = strrchr($name_file, ".");
    	echo "poids:".$poidsFichier;
    	// Si le poids du fichier est de 0 bytes, le fichier est
    	// invalide (ou le chemin incorrect) => message d'erreur
    	// sinon, le script continue.
    	if($poidsFichier <> 0){
    		// Si la taille du fichier est supérieure à la taille
    		// maximum spécifiée => message d'erreur
    		if($poidsFichier < $MAX_SIZE){
    			// On teste ensuite si le fichier a une extension autorisée
    			if(isExtAuthorized($extension)){
    				// Ensuite, on copie le fichier uploadé ou bon nous semble.
    				$RECUP_TEST_CERTIF= trim($RECUP_TEST_CERTIF,"-");
    			  $name_file= $RECUP_TYPE."_".$RECUP_TEST_CERTIF."_".$RECUP_REF_SERPIE."_".$RECUP_REF_BDL.$extension;
    				$uploadOk = move_uploaded_file($nomTemporaire, $content_dir.$name_file);
    				if($uploadOk){
    					echo("L'upload a réussi !<br><br>");
    				}else{
    					echo("L'upload a échoué !<br><br>");
    				}
    			}else{
    				echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
    			}
    		}else{
    			$tailleKo = $MAX_SIZE / 1000;
    			echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
    		}		
    	}else{
    		echo("Le fichier choisi est invalide !<br>");
    	}
    }else{
    	echo("Vous n'avez pas choisi de fichier !<br>");
    }
    Il semble uploader le fichier mais au bout dun moment jai lerreur "Le fichier choisi est invalide ". Jai fait un echo de la taille du fichier uploader et jobtiens "0". alors peut etre que cest le time limit. Mais le ini_set de la taille maxi nayant pas fonctionnee jai un doute sur le ini_set du time limit !

  8. #8
    Membre éclairé
    Avatar de titoon
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Tu devrais aussi jeter un coup d'oeil au niveau des directives post_max_size et memory_limit

Discussions similaires

  1. [Ajax] File Upload avec taille limite
    Par Kanithael dans le forum Struts 1
    Réponses: 0
    Dernier message: 25/03/2010, 18h30
  2. Réponses: 1
    Dernier message: 18/08/2008, 05h28
  3. [Upload] upload d'image : en limiter la taille
    Par Silvia12 dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2007, 17h16
  4. [Upload] taille limite en upload
    Par GilesB dans le forum Langage
    Réponses: 11
    Dernier message: 19/06/2006, 16h44
  5. [Upload] upload taille limitée
    Par temperature dans le forum Langage
    Réponses: 17
    Dernier message: 05/05/2006, 15h18

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