Upload d'image
Ce script vous explique (ou du moins essaye :) ) comment faire pour uploader une image. C'est juste un exemple, vous pouvez modifier le format des fichiers à uploader.
Tout d'abord vous devez faire un formulaire, voici un exemple :
<form action="upload.php" enctype="multipart/form-data" method="post">
<input name="fichier" size="30" type="file" />
<input name="MAX_FILE_SIZE" type="hidden" value="16777216" />
<input name="upload" type="submit" value="Uploader" />
</form>
Voici le script du fichier upload.php
<?php
if( isset($_POST['upload']) ) {
$dossier = '/upload/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 16777216;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.png', '.gif');
$extension = strrchr($_FILES['fichier']['name'], '.');
if(!in_array($extension, $extensions)) {
$erreur = 'Vous devez uploader un fichier de type png ou gif...';
}
if($taille>$taille_maxi) {
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) {
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) {
echo 'Upload effectué avec succès !';
}
else {
echo 'Echec de l\'upload !';
}
}
else {
echo $erreur;
}
}
?>
Ce script est vraiment simple !
Attention ! Le dossier de destination doit avoir tous les droits ! (777).
Bon, je pense que quelques explications sont quand même nécessaire pour certains :
$fichier = basename($_FILES['fichier']['name']);
Permet de garder seulement le nom du fichier.
Par exemple si le chemin de votre image est :
"C:\Mes Documents\mon_image.png", alors $fichier prendra comme valeur "mon_image".
$taille = filesize($_FILES['fichier']['tmp_name']);
Permet de connaitre la taille de l'image envoyé.
$extensions = array('.png', '.gif');
$extensions est un tableau qui prend (selon ce que vous définissez dans celui-ci) les extensions possibles.
$extension = strrchr($_FILES['fichier']['name'], '.');
Permet de connaitre l'extension du fichier envoyé.
Voici une liste des variables superglobale $_FILES :
- $_FILES['fichier']['name'] : renvoit le nom du fichier stocké sur la machine du client qui envoit le fichier.
- $_FILES['fichier']['tmp_name'] : renvoit le nom du fichier stocké sur le serveur (le fichier a donc été reçu).
- $_FILES['fichier']['type'] : renvoit le type mime du fichier envoyé. Attention aux failles de sécurité.
- $_FILES['fichier']['size'] : renvoit la taille du fichier en octets.
- $_FILES['fichier']['error'] : renvoit éventuellement un code d'erreur pendant le transfert.
Normalement vous êtes maintenant capable de faire un systeme d'upload.