Upload

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 241 fois - Téléchargée 27 fois

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

Ajouter un commentaire

Commentaires

MaitreLgTbD
Messages postés
17
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
29 juin 2009
-
Bonjour,

felicitation pour ton code
une petite question si tu t'es encore vivant y'a moyen de récupéré l'url du chemin d'acces du fichier? afin que la personne puisse le retelecharger apres l'avoir uploader?

Merci =)
seude
Messages postés
4
Date d'inscription
jeudi 29 décembre 2005
Statut
Membre
Dernière intervention
7 mars 2007
-
bonjour à tous,

je fais un uploade fichier et il y a erreur du genre
Warning: copy(/var/www/html/projets/oristano/src/admin/fichier/sry): failed to open stream: Permission denied in /var/www/html/projets/oristano/src/admin/scripts/produitsMod.php on line 159

je ne sait pas pourqoui, est-ce que quelqun pourrait m'aider svp
coton rough
Messages postés
18
Date d'inscription
vendredi 17 novembre 2000
Statut
Membre
Dernière intervention
23 juillet 2005
-
merci beaucoup...j'y cours
DHKold
Messages postés
153
Date d'inscription
vendredi 6 décembre 2002
Statut
Membre
Dernière intervention
29 mai 2005
-
je te conseille donc de lire les cours sur le siteduzero:

www.siteduzero.com ;)
coton rough
Messages postés
18
Date d'inscription
vendredi 17 novembre 2000
Statut
Membre
Dernière intervention
23 juillet 2005
-
Salut moi le problème vient du fait que je n'arrive pas à créer une base de données...je débutes en php

Sinon tout le reste je comprends ;-)
Merci d'avance

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.