[résolu]connaitre la taille d'un fichier upload
Posté : 07 déc. 2005, 15:10
Bonjour,
Lorsqu'un fichier dépasse la taille max autorisée, je n'ai pas le message d'ereur.
Je n'ai d'ailleurs rien du tout concernant la taille de mon fichier
voici mon formulaire
echo '<br />taille'.$taille_fic;
echo '<br />exist'.file_exists($_FILES['photo']['tmp_name']);
ces deux dernier ne me retourne rien du tout....pourquoi???
Lorsqu'un fichier dépasse la taille max autorisée, je n'ai pas le message d'ereur.
Je n'ai d'ailleurs rien du tout concernant la taille de mon fichier
Code : Tout sélectionner
if(isset($_FILES['photo'])){
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg','JPG','JPEG','PNG', 'GIF');
$taille_max = 200000;
$dest_dossier = '../photo/';
$taille_fic = filesize($_FILES['photo']['tmp_name']);
$extension = substr(strrchr($_FILES['photo']['name'], '.'), 1);
echo '<br />taille'.$taille_fic;
echo '<br />exist'.file_exists($_FILES['photo']['tmp_name']);
// vérifications
if( !in_array($extension, $extensions_ok ) )
{ $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}elseif( (file_exists($_FILES['photo']['tmp_name'])and ($taille_fic > $taille_max))|| $taille_fic==0){
$erreur = 'Votre fichier doit faire moins de 200Ko !';
}
// copie du fichier
if($erreur==''){
$dest_fichier = basename($_FILES['photo']['name']);
// enlever les accents
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
//dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = 'bi'.$idBien.'f'.$idphoto;
$dest_fichier= $dest_fichier.'.'.$extension;
//echo $dest_fichier;
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
// insertion dans la base
if ($nbphoto==0){
$sql="INSERT INTO photo (`idphoto`,`fkbien` ,`nomfic`,`url` ,`taille`,`favori`) VALUES " ;
$sql.=" ('','$idBien','$dest_fichier','$dest_dossier','$taille_fic',1);";
}else{
$sql="INSERT INTO photo (`idphoto`,`fkbien` ,`nomfic`,`url` ,`taille`,`favori`) VALUES " ;
$sql.=" ('','$idBien','$dest_fichier','$dest_dossier','$taille_fic',0);";
}
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}else{
$erreur= '<br /><span id="erreur">'.$erreur.'</span>';
}
}
}
Code : Tout sélectionner
<form method="POST" action="a_foto.php" enctype="multipart/form-data">
<div id="contenuc">
<input type="hidden" value="40" id="idbien" name="idbien">
<h2>Gestion des photos</h2>
<p id="foto">
Vous pouvez insérer 10 photos au maximum.La photo favorie apparaitra dans la liste des biens.<br/>
Pour supprimer une photo il faut d'abord choisir une autre photo en tant que favorie.<br/><br/>
</p>
<ul id="photosave">
<li ><img src="../photo/bi40f4.jpg" alt="photo" /><br /><a href="a_foto.php?idbien=40&etat=supprimer&idphoto=27"><img style="height:15px;width:15px;" src="../image/delete.gif" title="Supprimer cette photo" alt="Effacer"/></a><a href="a_foto.php?idbien=40&etat=coeur&idphoto=27"><img style="height:15px;width:15px;" src="../image/heart.gif" title="Mettre en favoris" alt="Coeur"/></a></li><li ><img src="../photo/bi40f6.jpg" alt="photo" /><br /><a href="a_foto.php?idbien=40&etat=supprimer&idphoto=29"><img style="height:15px;width:15px;" src="../image/delete.gif" title="Supprimer cette photo" alt="Effacer"/></a><a href="a_foto.php?idbien=40&etat=coeur&idphoto=29"><img style="height:15px;width:15px;" src="../image/heart.gif" title="Mettre en favoris" alt="Coeur"/></a></li><li style="border:1px solid #FF0000;"><img src="../photo/bi40f7.jpg" alt="photo" /><br />favori</li><li ><img src="../photo/bi40f8.jpg" alt="photo" /><br /><a href="a_foto.php?idbien=40&etat=supprimer&idphoto=31"><img style="height:15px;width:15px;" src="../image/delete.gif" title="Supprimer cette photo" alt="Effacer"/></a><a href="a_foto.php?idbien=40&etat=coeur&idphoto=31"><img style="height:15px;width:15px;" src="../image/heart.gif" title="Mettre en favoris" alt="Coeur"/></a></li> </ul>
<br />
<div id="enregistrerimage"><!-- Limiter la taille des fichiers à 200Ko --><input type="hidden" name="MAX_FILE_SIZE" value="200000" /><fieldset id="photo"><!-- champs d envoi de fichier, de type file --><p><label for="photo">Ajouter une photo </label><input type="file" name="photo" id="photo"/> <!-- bouton d envoi --><input type="submit" class="StandardButton120" name="envoi" value="Enregistrer" /></p></fieldset></div></div>
</form>
echo '<br />exist'.file_exists($_FILES['photo']['tmp_name']);
ces deux dernier ne me retourne rien du tout....pourquoi???