Version imprimable
Merci de l'attention portée à ma demande, c'est gentil. Par contre autre problème j'ai bien intégrer comme vous me l'aviez dit if($_FILES['fichier']['tmp_name'][$key]) mais j'ai un code d'erreur je vous montre :
Merci bienCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php if (isset($_FILES["fichier"])) { foreach ($_FILES["fichier"]["error"] as $key => $error) { if($_FILES['fichier']['tmp_name'][$key]){ $dossier = 'upload/'; $fichier = basename($_FILES['fichier']['name'][$key]); $taille_maxi = 20971520; $taille = filesize($_FILES['fichier']['tmp_name'][$key]); $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.mp3', '.doc', '.docx', '.avi', '.txt', '.pdf'); $extension = strtolower(strrchr($_FILES['fichier']['name'][$key], '.')); $upload_results = array(); //Début des vérifications de sécurité... if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau { $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt, doc, mp3 ou encore avi<br>'; } if($taille>$taille_maxi) { $erreur = 'Le fichier est trop volumineux'; } if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload { //On formate le nom du fichier ici... $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); $fichier = uniqId().$extension; $tmp_name = $_FILES["fichier"]["tmp_name"][$key]; $url = 'http://localhost/Projet/upload/'.$fichier; if($upload_results[$fichier] = move_uploaded_file($_FILES['fichier']['tmp_name'][$key], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... { //echo '<p align=center> Upload effectué avec succès ! <br>'; $com = 'Cliquez ici pour télécharger le fichier'; echo '<a href="'.$url.'">'.$com.'</a><br/>'; echo 'adresse ip du client : '.$_SERVER['REMOTE_ADDR'].'<br>'; //Suppression fichier //unlink( "upload/$fichier" ); } else //Sinon (la fonction renvoie FALSE). { echo 'Echec de l\'upload !'; } } else { echo $erreur; } echo '<a href="efface.php?supprimeLeFichier='.($url).'">supprimer</a><br />'; echo count(array_keys($upload_results, true, true)) . " fichiers envoyés avec succès"; echo count(array_keys($upload_results, false, true)) . " fichiers n'ont pas été envoyés"; }else{ echo 'Le fichier ne peut être trouver'; } } ?>
Le code erreur est le suivant :
Parse error: syntax error, unexpected $end in C:\wamp\www\Projet\upload.php on line 64
Merci
Je viens de recevoir un nouveau message d'erreur :
Parse error: syntax error, unexpected $end in C:\wamp\www\Projet\upload.php on line 63
Et la ligne 63 correspond à : </html>
Je ne comprend plus rien
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 <html> <head> <title>upload</title> </head> <body> <?php if (isset($_FILES["fichier"])) { foreach ($_FILES["fichier"]["error"] as $key => $error) { if($_FILES['fichier']['tmp_name'][$key]){ $dossier = 'upload/'; $fichier = basename($_FILES['fichier']['name'][$key]); $taille_maxi = 20971520; $taille = filesize($_FILES['fichier']['tmp_name'][$key]); $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.mp3', '.doc', '.docx', '.avi', '.txt', '.pdf'); $extension = strtolower(strrchr($_FILES['fichier']['name'][$key], '.')); $upload_results = array(); //Début des vérifications de sécurité... if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau { $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt, doc, mp3 ou encore avi<br>'; } if($taille>$taille_maxi) { $erreur = 'Le fichier est trop volumineux'; } if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload { //On formate le nom du fichier ici... $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); $fichier = uniqId().$extension; $tmp_name = $_FILES["fichier"]["tmp_name"][$key]; $url = 'http://localhost/Projet/upload/'.$fichier; if($upload_results[$fichier] = move_uploaded_file($_FILES['fichier']['tmp_name'][$key], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... { //echo '<p align=center> Upload effectué avec succès ! <br>'; $com = 'Cliquez ici pour télécharger le fichier'; echo '<a href="'.$url.'">'.$com.'</a><br/>'; echo 'adresse ip du client : '.$_SERVER['REMOTE_ADDR'].'<br>'; //Suppression fichier //unlink( "upload/$fichier" ); } else //Sinon (la fonction renvoie FALSE). { echo 'Echec de l\'upload !'; } } else { echo $erreur; } echo '<a href="efface.php?supprimeLeFichier='.($url).'">supprimer</a><br />'; echo count(array_keys($upload_results, true, true)) . " fichiers envoyés avec succès"; echo count(array_keys($upload_results, false, true)) . " fichiers n'ont pas été envoyés"; }else{ echo 'Le fichier ne peut être trouver'; } } ?> </body> </html>
Il te manque une accolade. Tu as laissé les messages dans le foreach alors que tu ne devrais pas.
Rajoute une accolade avant "?>".
Merci beaucoup de votre aide je suis étourdi je crois ! Je vous souhaite une bonne journée et bonne continuation dans le développement ! :D
J'ai un petit soucis encore concernant la fonction unlink si vous pouvez m'aider, merci !
Lol excusez-moi. Alors je mets mon code du fichier upload.php :
code du fichier efface.php :Code:
1
2
3 echo '<a href="efface.php?supprimeLeFichier='.($url).'">supprimer</a><br />'; $fichier = uniqId().$extension; $url = 'http://localhost/Projet/upload/'.$fichier;
Code:
1
2
3
4
5
6
7
8
9 <?php if (isset($_GET["supprimeLeFichier"])) { $up = $_GET['supprimeLeFichier']; unlink("./upload/".$up); echo "Le fichier a été supprimé avec succès"; }else{ echo "Erreur lors de la suppression du fichier "; } ?>
Et lorsque je clique sur l'hyperlien il m'affiche une erreur par rapport au chmod..
Merci
Merci ;) toi aussi. Je travail en local avec wampserver avant d'heberger tout ça sur un serveur apache..
Rajoute ça en haut de ton script :
Code:chmod("lien/vers/ton/dossier", 0755);
J'ai aussi vu ça sur des forums mais j'ai bloqué au niveau du lien étant donné que mes variables sont :
Code:
1
2 $fichier = uniqId().$extension; $url = 'http://localhost/Projet/upload/'.$fichier;
Peut-être comme ça (je considère ici que ton .php est dans le dossier Projet)
D’ailleurs tu devrais alors tester comme ça :Code:chmod("upload", 0755);
Code:
1
2 unlink("upload".$up);
Sinon, regarde manuellement si tu as les droits sur le dossier.