Salut,
Aujourd'hui, dans cet article je vais essayer de vous présenter un système d'upload d'image vers un serveur tout en passant par le PHP.
Ce système ne comporte qu'un seul fichier "upload.php" .
Ce fichier sera composé de :
- Formulaire pour selectionner l'image à uploader
- Script pour contrôler l'image (taille, extension, dimensions, nom du fichier ...) et l'uploader
<form enctype="multipart/form-data" action="upload.php" method="POST">==> Aperçu :
<input type="hidden" name="posted" value="1" /> //pour permettre de vérifier qu'une requête vient d'être transmise par le formulaire
<input name="fichier" type="file" /><br />
<input type="submit" value="Uploader" />
</form>
Puis on passe au script PHP qui va contrôler l'image et l'uploader après :
//----------------------------
// DEFINITION DES VARIABLES
//----------------------------
$target = 'fichiers/'; // Repertoire cible
$extension = 'gif'; // Extension 1 permise du fichier sans le .
$extension2 = 'png'; // Extension 2 permise du fichier sans le .
$extension3 = 'jpg'; // Extension 3 permise du fichier sans le .
$max_size = 250000; // Taille max en octets du fichier
$width_max = 1024; // Largeur max de l'image en pixels
$height_max = 768; // Hauteur max de l'image en pixels
//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------
$time = time();
$nom_file = $_FILES['fichier']['name'];
$tmp = $_FILES['fichier']['tmp_name'];
//----------------------
// SCRIPT D'UPLOAD
//----------------------
if(!empty($_POST['posted']))
{
// On vérifie si le champ est rempli
if(!empty($_FILES['fichier']['name']))
{
// On vérifie l'extension du fichier
if(substr($nom_file, -3) == $extension OR substr($nom_file, -3) == $extension2 OR substr($nom_file, -3) == $extension3)
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload
if (move_uploaded_file ($_FILES['fichier']['tmp_name'] , $target.$time.'_'.$_FILES['fichier']['name'] ) )
{
// Si upload OK alors on affiche le message de réussite
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ',$time,'_',$_FILES['fichier']['name'], '<br />';
echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; echo '<b>URL :</b> <input type="text" value="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" size=38><br />';
echo '<hr />';
echo '<img src="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" /><br />';
}
else
{
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br/><br />';
}
}
else
{
// Sinon on affiche une erreur pour les dimensions et taille de l'image echo '<b>Veuillez saisir une image d\'une taille inférieur à 1024*768</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<b>Votre image ne comporte pas l\'extension .gif , .png ou .jpg!</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<b>Le champ du formulaire est vide !</b><br /><br />';
}
}
Maintenant un bilan qui présente le contenu du fichier "upload.php" :
//------------------------------------Bon, c'était tout pour cet article =)
// Script réalisé par Samir.Paul.Ouahhabi
// Le 08/9/2007
// Licence GNU/GPL
// http://formation-php.blogspot.com/
// ideetek@gmail.com
//-------------------------------------
//----------------------------
// DEFINITION DES VARIABLES
//----------------------------
$target = 'fichiers/'; // Repertoire cible
$extension = 'gif'; // Extension 1 permise du fichier sans le .
$extension2 = 'png'; // Extension 2 permise du fichier sans le .
$extension3 = 'jpg'; // Extension 3 permise du fichier sans le .
$max_size = 250000; // Taille max en octets du fichier
$width_max = 1024; // Largeur max de l'image en pixels
$height_max = 768; // Hauteur max de l'image en pixels
//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------
$time = time();
$nom_file = $_FILES['fichier']['name'];
$tmp = $_FILES['fichier']['tmp_name'];
//----------------------
// FORMULAIRE D'UPLOAD
//----------------------
?>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="posted" value="1" /> //pour permettre de vérifier qu'une requête vient d'être transmise par le formulaire
<input name="fichier" type="file" /><br />
<input type="submit" value="Uploader" />
</form>
<?php
//----------------------
// SCRIPT D'UPLOAD
//----------------------
if(!empty($_POST['posted']))
{
// On vérifie si le champ est rempli
if(!empty($_FILES['fichier']['name']))
{
// On vérifie l'extension du fichier
if(substr($nom_file, -3) == $extension OR substr($nom_file, -3) == $extension2 OR substr($nom_file, -3) == $extension3)
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload
if (move_uploaded_file ($_FILES['fichier']['tmp_name'] , $target.$time.'_'.$_FILES['fichier']['name'] ) )
{
// Si upload OK alors on affiche le message de réussite
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ',$time,'_',$_FILES['fichier']['name'], '<br />';
echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; echo '<b>URL :</b> <input type="text" value="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" size=38><br />';
echo '<hr />';
echo '<img src="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" /><br />';
}
else
{
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br/><br />';
}
}
else
{
// Sinon on affiche une erreur pour les dimensions et taille de l'image echo '<b>Veuillez saisir une image d\'une taille inférieur à 1024*768</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<b>Votre image ne comporte pas l\'extension .gif , .png ou .jpg!</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<b>Le champ du formulaire est vide !</b><br /><br />';
}
}
Vous pouvez élaborer ce scripts en ajoutant un design et un compteur ...
D'ailleurs c'est ce que j'ai fait ici : DEMO
Enjoy it
PHPaul
6 commentaires:
C'est le blog, le plus moche et le plus null que j'ai jamais vu;)
:))))))
amicalement nasser
Merci Nasser pour le compliment :P
Tu es toujours aussi chian.. oups je voulais dire toujours aussi sympa -_-'
Salut !
Script nickel, aucun probleme pour le faire marcher, merci !
Ah ouais ok le gars qui est sur msn pendant qu'il enregistre un tuto... ptdr
Merci pour le script
Pratique et facile à utiliser.
Bonne continuation !!!!
Oziks
Merci mille fois man , ton code est trop cool frèro.
Je viens de l'utiliser et ça a marché direct.
Par contre j'aurai voulu savoir comment renommer l'image.
A pluche ma pluche,
Mohamed
Enregistrer un commentaire