Supprimer Les Fichiers D'Image À Partir Du Serveur
Je me demande si quelqu'un pourrait m'aider s'il vous plaît.
J'ai mis en place cette page qui permet aux utilisateurs d'afficher leurs images téléchargées dans une galerie format.
Maintenant, je suis désireux d'ajouter la suppression de la fonctionnalité de chaque image. J'ai créé le bouton et le Javascript derrière elle, mais je ne suis vraiment pas sûr de savoir comment le lien 'cliquez sur le bouton' avec la physique réelle de la suppression du fichier.
Les images ne sont pas stockées dans une base de données, mais dans les deux emplacements de dossier sur mon serveur, dans la structure suivante:
UploadedFiles/username/locationid/imagename
et
UploadedFiles/username/locationid/Thumbnails/imagename
Je suis relativement nouveau à PHP et je suis en train d'atteindre les limites de mes connaissances, mais certainement disposés à apprendre. À partir de la documentation que j'ai lu, je pense que je suis correct en disant que le unlink
méthode est la bonne commande à utiliser?
Mais ce que je trouve vraiment difficile, c'est dire le code pour trouver les dossiers avec les username
et locationid
les dossiers qui correspondent au courant username
et locationid
, puis supprimer les fichiers qui correspondent à la $source
nom de la variable.
Je me demandais si quelqu'un pourrait peut-être donner des conseils s'il vous plaît comment je peut aller à ce sujet.
Merci beaucoup et salutations
OriginalL'auteur IRHM | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez passer le nom d'utilisateur, locationid, et imagename variables à votre script, vous pouvez supprimer les fichiers à l'aide de
unlink()
:Parce que vous êtes en interaction avec votre système de fichiers, vous voulez être sûr et désinfecter les variables (empêcher quelqu'un d'utiliser ../../../pour obtenir les parties indésirables de votre système de fichiers).
+1, drôle de nous pense comme je viens de l'édition 🙂
Je ne sais pas si il va sans mentionner, je vais donc citer: votre code doit être structuré de sorte que la variable d'assainissement de conduites avant le $path= et unlink() lignes.
Salut @PaulBain et @la Voile Ensemble des Médias. Merci beaucoup pour votre aide à ce sujet. J'ai ajouté le code, où je pense que ça devrait aller, au sein du clic sur un bouton de action? mais quand j'ai ajouter le morceau de code commençant par
spath
, mon logiciel d'image est affectée et que je perds l'Thumbnail
fonctionnalité. Je me demandais aussi, et pardonnez-moi de poser les débutants question, est-il possible d'utiliser le$imagename
quand je ne la déclarez pas jusqu'à ce que plus tard dans mon script, pour être précis, la ligne 124 qui commence<a href="<?php echo $source; ?>">
j'ai mis à jour mon lien afin de refléter les modifications que j'ai apporté. CordialementJe vois ce que vous avez fait, et malheureusement, cela ne fonctionnera pas, vous ne pouvez pas simplement inclure le code dans votre fichier d'index. Il sera exécuté comme le reste de la production est traitée, ce qui n'est pas l'effet désiré. Pour obtenir le comportement que vous êtes après, vous aurez besoin d'utiliser le code dans un fichier PHP à lui tout seul, et ensuite appeler ce fichier PHP à l'aide d'AJAX (ou une autre demande) et d'inclure les variables dans votre demande.
OriginalL'auteur Patrick Moore
Évidemment votre javascript (côté client) devra appeler une URL (côté serveur) pour supprimer l'image sélectionnée par l'utilisateur. Je propose que pour l'instant, vous le faites de manière statique (si plus tard tu veux passer à quelque chose de plus dynamique, l'étape qui consiste à transformer en ajax en assez petit.
Afin de mettre à la Voile les Médias, vous aurez à passer le nom d'utilisateur et locationID à votre serveur en cliquant sur le bouton supprimer. Une façon de le faire est:
Lors du rendu de votre galerie en HTML/javascript, pour chaque image, vous aviez ci-dessous un qui contiendra les informations nécessaires et de les soumettre bouton, il suffit d'appeler le script delete de votre serveur. Un exemple de formulaire que vous pourriez faire est de:
Ce formulaire va stocker la valeur nécessaire dans des champs cachés qui ne sera pas affiché sur la page web, mais sera toujours envoyé au serveur lorsque vous appuyez sur le bouton "soumettre".
(pour la petite histoire, la méthode utilisée ici est d'OBTENIR, car autant que je sache HTML ne prend pas en charge la méthode DELETE (ce qui aurait été adapté dans notre cas)).
La méthode GET va appeler le script "your.server.org/deleteImage.php". Dans ce script, vous aurez toutes les informations dont vous avez besoin (nom d'utilisateur/locationId) pour supprimer l'image en utilisant le $_GET['username'] et $_GET['locationId'] variables. Alors comme vous l'avez mentionné, vous aurez besoin d'utiliser la dissocier de la méthode pour effacer le fichier à partir du serveur.
Enfin une fois cela fait, vous avez besoin de rediriger le script php de sorte que, après la suppression de l'image vous permet d'afficher la galerie de nouveau (par exemple). Cela peut être fait en appelant un script si vous avez une sorte de moteur de template, ou par l'appel de la "tête" de la fonction de php.
J'espère que ce flux était ce que l'on attend et j'espère vous avoir été utile.
ce qui concerne,
Ours
Pas de problème. Prenez votre temps, profitez de PHP et bien sûr, il n'y a pas une telle chose comme une question aussi stupide. Si vous ne pouvez pas trouver une réponse claire sur php.net (ce qui est un assez bon en php bible) ou sur Google, n'hésitez pas à demander. BR, Ours
Merci beaucoup @ours de pied, c'est marrant je viens de regarder à php.net. Cordialement
OriginalL'auteur bear foot