Ptit problème avec traitement des données du formulaire upload
le 14/02/2008 à 08:57
clicone
Déconnecté
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Bonjour, 'tit problème avec la fonction upload.
'tit problème au niveau: extension fichier qui me reviens systématiqement pas correcte alors que l'image uploadée en en .gif ou .jpg
Qui peut m’aider ?
Voici ce que j’ai fait.
Formulaire d’upload:
-
- <form enctype = "multipart/form-data" action = "upload.php" method = "post" id = "formulimage" name = "formulimage">
- Mon image <input type = "file" name = "monimage" id = "monimage" />
- <br />
- ...
-
Reception des données:
-
- <?php
- include("redimension.php");
-
- $fichier = upload("http//www.monsite.com/images/", "5000000000000", "monimage");
-
fichier fonction upload:
-
- <?php
-
- function upload($dossierStock, $taille, $inputName) {
- global $erreur;
- $champFile = $inputName;
- $dossier = $dossierStock;
- $taille_maxi = $taille;
- $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG', '.JPEG', '.PNG', '.BMP', '.bmp', '.GIF');
-
- if (isset($_FILES[$champFile])){
- $fichier = basename($_FILES[$champFile]['name']);
- $taille = filesize($_FILES[$champFile]['tmp_name']);
- $extension = strrchr($_FILES[$champFile]['name'], '.');
-
-
- if (!in_array($extension, $extensions)){
- $erreur = "extension fichier ".$fichier." pas correcte : ".$extension;
- }
-
- if ($taille > $taille_maxi){
- $erreur = "image trop grosse";
- }
-
le 14/02/2008 à 09:08
Salut,
pour récupérer l'extension du fichier, essaie plutôt de passer par "type" :
<?php
$extension = $_FILES['$champsFile']['type'];
?>
le 14/02/2008 à 09:42
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Attention, l'extension d'un fichier ne désigne en rien le format du fichier.
le 20/02/2008 à 13:36
J'ai découvert une petite fonction bien utile pour détecter si un fichier est bien une image ou pas :
exif_imagetype
Par exemple, pour savoir si un fichier a bien le format gif, png ou jpeg :
-
- <?php
- if(exif_imagetype($file)<4)
- {
- Echo "Il s'agit bien d'une image.";
- }
-
- ?>
-
Ca m'a l'air plus sûr que de juste vérifier l'extension du fichier.
le 20/02/2008 à 13:47
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Oui, mais tu es chanceux, tout le monde n'a pas accès à cette librairie :)
le 20/02/2008 à 14:07
i M@N
Déconnecté
One Love, One Heart, One Unity.
Hello.
Sinon y'a la fonction
getimagesize qui renvoie le format du fichier image (jpg/png/gif) dans une des valeur du tableau.
@+...
le 20/02/2008 à 14:44
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Sauf que cette fonction peut t'affirmer que ton fichier est une image même si il ne s'agit pas d'une image.
En effet, regarde cette news sur
getimagesize.
Accès rapide :
Remonter