begin process at 2012 02 09 11:42:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > UPLOAD DES FICHIERS

UPLOAD DES FICHIERS


 Information sur la source

Note :
1,76 / 10 - par 17 personnes
1,76 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Initié Date de création :12/05/2005 Vu :22 336

Auteur : mwahid

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

le code pour l'upload des images ; upload des fichier (images,zip)
Le code est de www.phpfrance.com

Source

  • Fichier teste01.php
  • ______________________________________________________________________________________________
  • <html>
  • <body>
  • <?php
  • if(isset($erreur)){
  • echo '<p>', $erreur ,'</p>';
  • }
  • ?>
  • <form method="POST" action="teste02.php" enctype="multipart/form-data">
  • <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
  • <fieldset>
  • <legend>Envoi de fichiers</legend>
  • <p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
  • <!-- bouton d'envoi -->
  • <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
  • </legend>
  • </fieldset>
  • </form>
  • </body>
  • </html>
  • ______________________________________________________________________________________________
  • Fichier teste02.php
  • ______________________________________________________________________________________________
  • <?php
  • if(isset($_FILES['photo']))
  • {
  • unset($erreur);
  • $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
  • $taille_max = 100000;
  • $dest_dossier = 'images/';
  • // utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
  • // vérifications
  • if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok) )
  • {
  • $erreur = 'Veuillez s&eacute;lectionner un fichier de type png, gif ou jpg !';
  • }
  • elseif( file_exists($_FILES['photo']['tmp_name'])
  • and filesize($_FILES['photo']['tmp_name']) > $taille_max)
  • {
  • $erreur = 'Votre fichier doit faire moins de 500Ko !';
  • }
  • // copie du fichier
  • if(!isset($erreur))
  • {
  • $dest_fichier = basename($_FILES['photo']['name']);
  • // formatage nom fichier
  • // enlever les accents
  • $dest_fichier = strtr($dest_fichier,
  • 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
  • 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  • // remplacer les caracteres autres que lettres, chiffres et point par _
  • $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
  • // copie du fichier
  • move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier.$dest_fichier);
  • echo($_FILES['photo']['tmp_name']);
  • }
  • else{
  • echo($erreur);
  • }
  • }
  • ?>
  • ______________________________________________________________________________________________
Fichier teste01.php
______________________________________________________________________________________________

<html>
<body>
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<form method="POST" action="teste02.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html>
______________________________________________________________________________________________

Fichier teste02.php
______________________________________________________________________________________________
<?php

if(isset($_FILES['photo']))
{
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = 'images/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok) )
{
$erreur = 'Veuillez s&eacute;lectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier.$dest_fichier);
echo($_FILES['photo']['tmp_name']);
}
else{
echo($erreur);
}
}
?>
______________________________________________________________________________________________



 Sources de la même categorie

UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151
TROUVER LES DOUBLONS DANS UNE LISTE DE FICHIERS par soobook

Commentaires et avis

Commentaire de garfield90 le 12/05/2005 20:50:52

Bonjour mwahid,

je ne vois pas l'interet d'un tel code ici.
Si c'est pour recopier le code d'un autre site ou celui d'un livre, cela n'apporte rien.

Une piste que tu pourrais suivre serai de faire un client FTP en PHP (il doit en avoir sur phpcs, j'ai la flemme de regarder) ou du moins un code un peu plus étoffer que celui la.

En plus, la vérification que tu fais n'est pas top, car elle permet seulement de verifier le nom  du fichier et celui ci (le nom) ne determine pas le type de fichier. Par exemple, je peux uploader avec ton systeme un fichier php, js ou autre avec l'extension jpg et imagine la suite

Tu peux donc faire un vérif sur le mime du fichier, etc.


Enfin, j'ai pas encore trouvé l'utilité de :
# <?php
# if(isset($erreur)){
# echo '<p>', $erreur ,'</p>';
# }
# ?>

dans ton fichier teste01.php

à moins que tu es 'oublié' de remplacer
echo($erreur);
par
header("Location:teste01.php?erreur=$erreur");
exit(); // par sécu mais pas obligatoire

et que ton

# <?php
# if(isset($erreur)){
# echo '<p>', $erreur ,'</p>';
# }
# ?>

devienne

# <?php
# $erreur = $_GET["erreur"];
# if(isset($erreur)){
# echo '<p>', $erreur ,'</p>';
# }
# ?>

J'espere ne pas avoir dis de connerie, et que cela te serve à progresser.
Et mettre un code source comme celui en niveau initié, je trouve cela un peu exageré

Pout tout ca, note : 1/10
Bon courage

Commentaire de Anthomicro le 12/05/2005 22:49:53

Salut,

je rajoute que ta vérification des extensions est inutile, il faut vérifier le type mime du fichier, dans ton cas je peux très bien uploader un fichier php et le renommer en jpeg (même si il ne sera pas interprété par le serveur) ^^

a +

Commentaire de GiUsTiNo le 13/05/2005 20:19:31

Oui ca me rappelle des souvenirs...
Un hack en upload :)
C'est un gros risque ce genre de script alors prends bien garde à le sécuriser totalement, quitte à demander de l'aide ou autre ;)
Sinon, je dis les mêmes choses que Garfield90 et qu'Anthomicro.
Inité ? Ca me semble pas trop approrié...
Bonne continuation !

Giustino, Admin VegaGames

Commentaire de harlock59 le 22/06/2005 10:39:05

ce script ne fonctionne pas sur mon hébergeur (ovh). il me semble qu'il a marché une fois, et que là, il ne fonctionne plus. pourtant j'ai rien changé à part le nom du dossier de destination.

Commentaire de drommk le 12/07/2005 15:47:22

euh...pas grand chose à rajouter sinon que ta regex élimine tous les chiffres >1. des noms de fichiers, ce qui peut poser problème, surtout quand on uploade des photos (possédant souvent les même suffixe et identifiés par un numéro).

Voilà. Sinon, c'est vrai qu'il y a pas mal de trucs inutiles, mais ce script fonctionne bien. Donc on va pas non plus te jeter des caillous...

Commentaire de Elohim le 29/10/2005 17:14:40

Bon ben comme les autres : c'est vraiment inutile de copier un script "salement" (sans avoir pris soin de mettre quelques explications et de supprimer les choses inutiles).
Alors pour ceux interessés, et qui souhaitent des détails, voilà l'adresse du tuto d'origine :
http://www.phpfrance.com/tutoriaux/index.php/2005/04/26/30-lupload-de-fichiers

Commentaire de darkchyper le 08/01/2006 02:09:06

franchement c'est a celui qui aura la plus grande gueule par rapport à la sécurité et au système de upload!!
j'ai fais tous les lien de ce site pour trouver un code php qui me permétré d'uploader des fichiers et à chaque fois: " vu et revu + faille de sécurité donc pas bien"
Par contre je n'ai trouvé aucun code avec une sécurité  ni meme quelqu'un qui explique clairement comment faire une bonne sécurité!!!

bon et bien je cherche encore...

Commentaire de darkchyper le 08/01/2006 02:09:23

franchement c'est a celui qui aura la plus grande gueule par rapport à la sécurité et au système de upload!!
j'ai fais tous les lien de ce site pour trouver un code php qui me permétré d'uploader des fichiers et à chaque fois: " vu et revu + faille de sécurité donc pas bien"
Par contre je n'ai trouvé aucun code avec une sécurité  ni meme quelqu'un qui explique clairement comment faire une bonne sécurité!!!

bon et bien je cherche encore...

Commentaire de Anthomicro le 08/01/2006 10:16:15

http://www.vulgarisation-informatique.com/upload-php.php

Commentaire de darkchyper le 08/01/2006 15:34:12

merci ^^

Commentaire de _klesk le 14/05/2007 00:07:04

juste pour dire, j'ai eu des soucis lors de la réécriture du nom du fichier.

J'ai modifier decette facon :

$dest_fichier = preg_replace('/([^.a-zA-Z0-9])+/i', '_', $dest_fichier);

Commentaire de didoudu17 le 22/11/2008 18:03:45 1/10

Aucune secu alors qu'il en existe beaucoup d'autres.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales