Upload en PHP

Tout ce qui touche au PHP

Modérateurs: Norris, Patou, kald, legloups

Upload en PHP

Messagede legloups » Sam Jan 17, 2009 6:28 pm

Bonjour à tous, voilà je travaille sur un upload de fichier, je suis parti d'un script que j'ai découvert dans les fin fond du net

Voici donc le fichier php que l'on nommera my_upload.php


<HTML><BODY><CENTER>

<?
// Taille max des fichiers (octets)
$MFS=200000;
// Répertoire de stockage
$rep="My_upload/";

if(isset($_FILES['userfile'])) {
if($_FILES['userfile']['size']>0) {
$savefile= $rep.$_FILES['userfile']['name'];
$temp = $_FILES['userfile']['tmp_name'];
if (move_uploaded_file($temp, $savefile)) { ?>
<b>Votre fichier a bien été enregistré !</b>
<BR>Nom : <?echo $_FILES['userfile']['name'];?>
<BR>Taille : <?echo $_FILES['userfile']['size'];?> o
<BR>Type : <?echo $_FILES['userfile']['type'];?>
<? } else { ?>
<b>Erreur d'enregistrement !</b>
<? }

} else { ?>
<b>Trop gros fichier !</b>
<i>( <? echo $MFS;?> octets max.)</i>
<? }
} ?>

<FORM METHOD="POST"
ENCTYPE="multipart/form-data">
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE
VALUE=<? echo $MFS;?>>
<INPUT TYPE=FILE NAME="userfile"><BR>
<INPUT TYPE=SUBMIT value="Enregistrer le fichier">
</FORM>

LISTE DES FICHIERS TELECHARGES
<BR><TABLE border>
<? $dir = opendir($rep);

while ($f = readdir($dir))
if(is_file($rep.$f)) { ?>
<TR>
<TH>
<A href="<? echo $rep.$f; ?>"
target="_blank"><? echo $f; ?></A>
</TH>
<TD align=right><? echo filesize($rep.$f); ?></TD>
<TD>
<? echo date("d/m/Y H:i:s",filectime($rep.$f)); ?>
</TD></TR>
<? }

closedir($dir); ?>
</TABLE>

</CENTER></BODY></HTML>



Il est important de mettre my_upload en 777 pour permettre l'écriture.

Après pour le protéger un .htaccess

Maintenant, il reste à améliorer la gestion des fichiers, en intégrant la possibilité de les effacer sans passer par le FTP, puis de limiter l'upload à certains types de fichiers... :D

La suite bientôt... :P
Dernière édition par legloups le Sam Jan 17, 2009 10:31 pm, édité 3 fois.
3D - temps réel et même irréel au passage...
lg-creations
mon p'tit blog
Avatar de l’utilisateur
legloups
Site Admin
 
Messages: 5131
Photos: 1
Inscription: Mar Déc 23, 2008 11:11 am
Localisation: Var

Messagede Norris » Sam Jan 17, 2009 7:20 pm

Merci legloups de partager ton petit script :wink:

J'ai pas encore essayé, mais juste à essayer de déchiffrer comme ça je comprends pas tout...Ton formulaire renvoie sur la même page ?

et le composant du formulaire pour ouvrir les dossiers, c'est bien une des balises <input> sans types ?
j'avais encore jamais vu ne pas mettre de type à un input :shock: .

Je vais essayer ça dans la soirée ... mais ca va être dur, j'ai foutu la pagaille avec easy php et wamp, et apache veut plus rien savoir :cry:
mon site perso WWW.CREASEAN.FREE.FR
http://creasean.free.fr/diabetochecker . Projet de logiciel avec Adobe Flex et Air
Avatar de l’utilisateur
Norris
Modérateur
 
Messages: 907
Inscription: Mar Déc 23, 2008 10:50 pm

Messagede legloups » Sam Jan 17, 2009 8:26 pm

Oui Norris, le formulaire est là :

Code: Tout sélectionner
<FORM>
   <INPUT>
   <INPUT><BR>
   <INPUT>
</FORM>


C'est très épuré comme code... :roll:

pour vérifier les extensions je pensais à un truc du style :

Code: Tout sélectionner
$tabExt = array('jpg','jpeg','png','gif');


ou

Code: Tout sélectionner
$tabExt = ".jpg,.jpeg,.png,.gif";
3D - temps réel et même irréel au passage...
lg-creations
mon p'tit blog
Avatar de l’utilisateur
legloups
Site Admin
 
Messages: 5131
Photos: 1
Inscription: Mar Déc 23, 2008 11:11 am
Localisation: Var

Messagede legloups » Sam Jan 17, 2009 10:29 pm

Bon j'ai été obligé d'éditer mon premier message, les balises "code" m'avaient bouffée du code... :P
3D - temps réel et même irréel au passage...
lg-creations
mon p'tit blog
Avatar de l’utilisateur
legloups
Site Admin
 
Messages: 5131
Photos: 1
Inscription: Mar Déc 23, 2008 11:11 am
Localisation: Var


Retourner vers PHP

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron