Page 1 sur 1

Upload en PHP

MessagePosté: Sam Jan 17, 2009 6:28 pm
de legloups
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

MessagePosté: Sam Jan 17, 2009 7:20 pm
de Norris
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:

MessagePosté: Sam Jan 17, 2009 8:26 pm
de legloups
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";

MessagePosté: Sam Jan 17, 2009 10:29 pm
de legloups
Bon j'ai été obligé d'éditer mon premier message, les balises "code" m'avaient bouffée du code... :P