Upload

Toolsweb Messages postés 50 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 17 février 2006 - 5 sept. 2005 à 00:12
Toolsweb Messages postés 50 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 17 février 2006 - 5 sept. 2005 à 16:35
bonjour à tous, j'ai trouvé un script sur ce site qui permettait l'upload de fichier. Toutefois, il n'y avait pas de fonction supprimer donc j'ai TENTÉ d'en ajouter une. Voici mon code

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


if($userfile_size>0) {
$savefile= $rep.$userfile_name;


if (move_uploaded_file($userfile, $savefile)) { ?>
Votre fichier a bien été enregistré !

Nom : <? echo($userfile_name); ?>

Taille : <? echo($userfile_size); ?> octets


Type : <? echo($userfile_type);
} else { ?>


Erreur d'enregistrement !
<? }


} elseif($userfile) { ?>
Trop gros fichier ! ( <? echo $MFS;?>
octets max.)
<? } ?>


<FORM METHOD ="POST"
ENCTYPE="multipart/form-data">
>



</FORM>


LISTE DES FICHIERS TELECHARG&Eacute;S


<TABLE width="288" border>
<? $dir = opendir($rep);


while ($f = readdir($dir))
if(is_file($rep.$f)) { ?>
<TR>
<TH width="39"> [<? echo $rep.$f; ?> <? echo $f; ?>] </TH>
<TD width="83" align=right><? echo filesize($rep.$f); ?> Octets </TD>
<TD width="144" align=right>[?action=supprimer Supprimer ce fichier]</TD>
</TR>
<?
if($action=="supprimer"){
unlink("$f");
?>


<? }


closedir($dir); ?>

mais je reçois ce message d'erreur:
Parse error: parse error in /data/members/free/multimania/fr/t/o/o/toolsweb/htdocs/Nouveau fichiers/test.php on line 53

Je me demandais pourquoi et je me suis dit qu'ici, vous sauriez y répondre.

5 réponses

cs_maximev Messages postés 67 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 27 décembre 2010
5 sept. 2005 à 00:38
Salut,

Je te conseille plutôt dl'écrire comme ceci: @unlink("path/".$fichier");

Dans ton cas, on aura donc: @unlink($rep.$f"); si $f est bien ton fichier.

Bonne continuation
0
Toolsweb Messages postés 50 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 17 février 2006
5 sept. 2005 à 01:10
Non ça marche toujours pas.

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


if($userfile_size>0) {
$savefile= $rep.$userfile_name;


if (move_uploaded_file($userfile, $savefile)) { ?>
Votre fichier a bien été enregistré !

Nom : <? echo($userfile_name); ?>

Taille : <? echo($userfile_size); ?> octets


Type : <? echo($userfile_type);
} else { ?>


Erreur d'enregistrement !
<? }


} elseif($userfile) { ?>
Trop gros fichier ! ( <? echo $MFS;?>
octets max.)
<? } ?>


<FORM METHOD ="POST"
ENCTYPE="multipart/form-data">
>



</FORM>


LISTE DES FICHIERS TELECHARG&Eacute;S


<TABLE width="288" border>
<? $dir = opendir($rep);


while ($f = readdir($dir))
if(is_file($rep.$f)) { ?>
<TR>
<TH width="39"> [<? echo $rep.$f; ?> <? echo $f; ?>] </TH>
<TD width="83" align=right><? echo filesize($rep.$f); ?> Octets </TD>
<TD width="144" align=right>[?action=supprimer Supprimer ce fichier]</TD>
</TR>
<?
if($action=="supprimer"){
@unlink($rep.$f");
?>


<? }


closedir($dir); ?>

Mais cette fois, le message d'erreur dit que l'erreur ce situe à la ligne 48
0
cs_maximev Messages postés 67 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 27 décembre 2010
5 sept. 2005 à 01:46
Désolé.

Une erreur de frappe: @unlink($rep.$f);

et non @unlink($rep.$f"); qui fait une erreur
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 sept. 2005 à 09:33
Hello,

donne plutot la ligne 53 et les quelques lignes précédentes. Une parse error, c'est généralement un point-virgule manquant.

dans ton code à vue de nez, il manque aussi une accolade fermante après le dernier bloc de html.

Il manque aussi une accolade ouvrante après ton while...

Pour des questions de portaibilité, on écrit <?php et non pas <?

Les éléments et attributs html sont plutôt en minuscules.

Un readdir s'écrit plutôt :

while (false !($file readdir ($dh))) {}

(on se fout des variables hein, c'est juste la syntaxe).

On n'utilise les @ devant une fonction (ou une variable) que quand on a
l'intention de gérer les erreurs soi même (ce n'est visiblement pas le
cas ici).

Sinon le unlink ($rep.$f); est juste en effet.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Toolsweb Messages postés 50 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 17 février 2006
5 sept. 2005 à 16:35
Bon, ça , sa fonctionne sans erreur.

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


if($userfile_size>0) {
$savefile= $rep.$userfile_name;


if (move_uploaded_file($userfile, $savefile)) { ?>
Votre fichier a bien été enregistré !

Nom : <? echo($userfile_name); ?>

Taille : <? echo($userfile_size); ?> octets


Type : <? echo($userfile_type);
} else { ?>


Erreur d'enregistrement !
<? }


} elseif($userfile) { ?>
Trop gros fichier ! ( <? echo $MFS;?>
octets max.)
<? } ?>


<FORM METHOD ="POST"
ENCTYPE="multipart/form-data">
>



</FORM>


LISTE DES FICHIERS TELECHARG&Eacute;S


<TABLE width="288" border>
<? $dir = opendir($rep);


while ($f = readdir($dir))
if(is_file($rep.$f)) { ?>
<TR>
<TH width="39"> [<? echo $rep.$f; ?> <? echo $f; ?>] </TH>
<TD width="83" align=right><? echo filesize($rep.$f); ?> Octets </TD>
<TD width="144" align=right>[?action=supprimer&files=$f Supprimer ce fichier]</TD>
</TR>
<?php } ?>
<?php
if($action=="supprimer")
if($files=="$f"){
unlink($rep.$f);
?>
<? }closedir($dir); ?>

Mais je ne sait pas comment prendre le nom du fichier pour le mettre à la place de unlink($rep.$f);
0
Rejoignez-nous