Bonjour à toutes et à tous,
J'héberge mon site grâce à l'offre perso OVH
J'utilise Symfony et j'ai développé en local un système pour uploader et supprimer des images comme une galerie, pour cela le code envoie à la base de donnée le nom de l'image généré, et l'image est envoyé dans le répertoire (/www/public/uploads), leur droit d'accès est de 0644
Je rencontre la problématique suivante :
Dans mon code, au moment de supprimer une ou plusieurs images, j'ai recours a la fonction unlink() que j'utilise de la façon suivante
`unlink('/www/public/uploads/'.$photo->getName());` où $photo est la requête de la base de donnée pour récupérer le nom de l'image.
Mais rien ne se passe, j'ai tenté de jouer avec le chemin relatif, puis absolu, et je n'ai aucun résultat.
Si quelqu'un est plus à même de m'expliquer pourquoi ma fonction ou mon chemin est incorrect, ou même simplement me donner une solution viable, je vous en serai très reconnaissant, j'ai l'impression de devenir fou
Merci d'avance !
Hébergements Web - Imposible de supprimer un fichier avec la fonction PHP unlink()
Related questions
- Connexion à mon compte client
148166
13.02.2019 09:51
- Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS
123102
03.09.2018 14:46
- reCAPTCHA erreur pour le propriétaire du site : clé de site non valide
107922
14.02.2019 16:17
- [FAQ] Comment mettre à jour mon site pour supporter Apache 2.4 ?
95092
28.07.2017 11:39
- Passage en php 7.4
94238
30.06.2020 05:05
- Augmenter taille PHP Post Max Size sur mutualisé ?
88570
04.12.2019 21:52
- The requested URL / was not found on this server
87830
02.03.2017 18:25
- Deploy d'un projet Node JS
87532
12.10.2016 20:18
- NextCloud sur mutualisé
87507
07.04.2017 08:42
- Ce site est inaccessible Impossible de trouver l'adresse DNS du serveur
87117
16.10.2016 16:24
Bonjour @GaetanD18
Et si vous découpiez votre commande en DEUX lignes :
- Requête pour récupérer le nom du fichier,
- unlink ...
Bonjour,
Quelle erreur renvoi le unlink ?
Bonjour,
C'est pas juste un problème de lien relatif ?
Car hardcoder le path c'est pas la meilleure chose à faire.
Cordialement, janus57
Il y a aucune erreur de visible. Quand je code en local ça fonctionne même si le chemin est différent, ça supprime tout correctement, c'est juste une fois mis en ligne (et donc en production, sans erreur visible) que la suppression ne fonctionne pas
C'est déjà le cas
if (isset($_GET['supprimerid'])){
$photo = $entityManager->getRepository(Images::class)->findOneBy('id'=>$_GET['supprimerid']));
if ($photo != null){
unlink('/www/public/uploads/'.$photo->getName());
$entityManager->remove($photo);
$entityManager->flush();
}
}
Le souci c'est que je n'ai aucune idée de comment est géré le lien relatif depuis le service OVH ahah...
Etant donné que mon index.php est dans mon dossier /www alors mon chemin relatif serait "public/uploads" mais ça ne fonctionne pas non plus
Sur OVH le chemin n'est pas /www/public .
Essayez /home/votrelogin/www (en modifiant votrelogin évidemment)
Bonjour @GaetanD18
Le chemin une adresse d'un fichier sur un serveur de suite Internet dépend de deux paramètres :
- le premier chemin est celui que l'on rencontre en allant par FTP sur l'hébergement OVH.
- le deuxième chemin et celui que l'on voit lorsque l'on est sur une page du site et là il s'agit d'un chemin relatif qui tient compte du chemin de la page. Par exemple si votre page se trouve à l'adresse www/toto/tutu, il vous faudra alors décompter les deux niveaux toto et tutu avec ../../ pour se positionner à l'adresse www