Upload

Contenu du snippet

Petite page permettant l'upload de fichiers dont l'extension est choisie.

Tutorial complet: http://www.siteduzero.com/vostutos/?s=viewtuto&tutoid=51

Source / Exemple :


<?PHP
//Initialisation de la variables $infos
$infos = '';

//Initialisation des variables du formulaire (mise à '' si elles sont vides)
empty($_POST['pseudo']) ? $pseudo = '' : $pseudo = $_POST['pseudo'];
empty($_POST['titre']) ? $titre = '' : $titre = $_POST['titre'];

//Vérification du pseudo et du titre
if ($titre == '') $infos .= "- Vous devez définir un titre!<br>n";
if ($pseudo == '') $infos .= "- Vous devez entrer votre pseudo!<br>n";

//Pour savoir si le fichier a été uploadé, on vérifie que le fichier est bien dans le tableau des fichiers
if (!empty($_FILES['fichier1']['size'])){
//On récupère la taille, le nom et le nom du fichier temporaire
$f1_size = $_FILES['fichier1']['size'];
$f1_name = $_FILES['fichier1']['name'];
$f1_tmpname = $_FILES['fichier1']['tmp_name'];

//Récupération de l'extension du fichier (on prend ce qui suit le dernier point et on le met en minuscule
$ext = strtolower(substr($f1_name,strrpos($f1_name, ".")+1));
//Création du tableau des extensions acceptées
$valides = array("bmp","jpg","gif","png","tif","wbmp");

//On vérifie la taille et le type de fichier
if ($f1_size > 1000000) $infos .= "- Le fichier est trop volumineux!<br>n";
if (!in_array($ext,$valides)) $infos .= "- Ce type de fichier n'est pas accepté!<br>n";

//Si tout est bon (aucune erreur dans $infos), on déplace le fichier
if ($infos == ''):
move_uploaded_file($f1_tmpname, "./fichiers/{$f1_name}") or $infos .= "- Impossible d'enregistrer le fichier, contacter le webmaster!<br>n";
if ($infos == ''){
  $res = mysql_connect('localhost','root','');
  mysql_select_db('fichiers',$res);
  $add = mysql_query("INSERT INTO uploads VALUES ('','{$titre}','{$pseudo}','{$f1_name}',{$f1_size});");
}
endIf;
}else $infos .= "- Vous devez sélectionner un fichier à uploader!<br>n";

//Si le formulaire n'a pas encore été validé, on n'affiche pas les erreurs
if (empty($_POST['MAX_FILE_SIZE'])) $infos = '';

//Si il y a eu une erreur ou si le formulaire n'a pas encore été validé (Facile à savoir, tant que le formulaire n'est pas validé, MAX_FILE_SIZE est vide), on l'affiche
if ($infos != '' || empty($_POST['MAX_FILE_SIZE'])):
//Affichage des informations d'erreur au début du formulaire
?>

<span style="color:red"><?PHP echo $infos; ?></span><br>
<form name="envoie" method="post" action="envoie.php" enctype="multipart/form-data">
Pseudo: <input type="text" name="pseudo" size="30" maxlength="30" value="<?PHP echo $pseudo; ?>"><br>
Titre du fichier: <input type="text" name="titre" size=30 maxlength=50 value="<?PHP echo $titre; ?>"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Fichier: <input type="file" name="fichier1"><br>
<input type="submit" value="Envoyer!">
</form>
<?PHP ENDif;
if ($infos == '' && !empty($_POST['MAX_FILE_SIZE'])){
?>

BRAVO, transfer réussi!
<?PHP } ?>

Conclusion :


Vous devez créer la table suivante:

CREATE TABLE `uploads` ( `id` int(5) NOT NULL auto_increment, `titre` varchar(100) NOT NULL default '', `pseudo` varchar(50) NOT NULL default '', `name` varchar(50) NOT NULL default '', `size` int(11) NOT NULL default '0', UNIQUE KEY `titre` (`titre`,`name`), KEY `id` (`id`)) TYPE=MyISAM AUTO_INCREMENT=1;

Plus d'infos:

http://www.siteduzero.com/vostutos/?s=viewtuto&tutoid=51

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.