[RESOLU] Suppression de fichiers stockés en base SQL (via Mysql)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Suppression de fichiers stockés en base SQL (via Mysql)

Re: Suppression de fichiers stockés en base SQL (via Mysql)

par Magalux » 04 juin 2019, 11:32

Bonjour, je n'ai pas réussi à utiliser la fonction glob(), mais j'ai bricolé un truc par le biais de excel.
Merci pour votre aide.
A bientôt

Re: Suppression de fichiers stockés en base SQL (via Mysql)

par @rthur » 25 mai 2019, 00:38

Oui c'est possible avec la fonction glob()
http://php.net/glob

Un truc du genre
foreach (glob("xxxxx_ref_*.jpg") as $declinaison_fichier_a_supprimer) {
    unlink($declinaison_fichier_a_supprimer);
}

Re: Suppression de fichiers stockés en base SQL (via Mysql)

par Magalux » 24 mai 2019, 20:19

Rectification, la méthode du .txt a bien fonctionné.
Mais décidément mon site veut me compliquer la vie ....

En base sql sont enregistrés mes fichiers sous cette forme XXXXX_ref.jpg ; mais en réalité sur le site plusieurs autres fichiers sont présents et non indexés dans la base.
En fait à la création de l'annonce le fichier photo initial est dupliqué en différentes tailles et je me retrouve avec XXXXX_ref_75x100.jpg, XXXXX_ref_600x800.jpg etc

Puis-je dans mon nom de fichier mettre un truc du genre xxxxx_ref_*.jpg. De sorte qu'il prenne en compte tous les fichiers avec le début du nom indiqué ?

Re: Suppression de fichiers stockés en base SQL (via Mysql)

par Magalux » 24 mai 2019, 20:04

Merci à tous les 2 pour vos réponses. J'arrive à faire une connexion à ma BDD en PHP, ainsi que la requête, mais je n'ai pas réussi à transposer le résultat dans la fonction unlink.

J'ai donc opté pour la solution avec le fichier .txt

Sans succès, pourtant pour certains fichiers il m'a confirmé la suppression ... et depuis lorsque j'essaie à nouveau il me dit suppression impossible. Comme si le fichier était bien supprimé, alors que je le vois toujours sur mon client FTP.

Re: Suppression de fichiers stockés en base SQL (via Mysql)

par @rthur » 24 mai 2019, 18:34

Non ça n'existe pas directement mais tu peux faire un petit script très simple qui va faire une boucle sur la liste des fichiers à supprimer et le supprimer un par un.
Si tu as du PHP sur le serveur qui héberge les images, tu auras besoin de la fonction unlink() pour supprimer des fichiers

Si tu ne maitrise pas bien le PHP, plutôt que de faire une connexion à ta BDD vu que tu as l'air de gérer le SQL, fait un export dans un fichier texte des fichiers à supprimer, 1 nom de fichier à supprimer par ligne.

Puis ensuite un truc du genre
<?php
foreach(file('liste_des_fichiers_a_supprimer.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $fichier_a_supprimer) {
     if (unlink($fichier_a_supprimer)) {
          echo 'Fichier supprimé : '.$fichier_a_supprimer.'<br />';
     }else{
          echo 'ERREUR : Impossible de supprimer le fichier : '.$fichier_a_supprimer.'<br />';
     }
}
Je te laisse consulter la doc pour comprendre les fonctions que j'ai utilisées ici, bien sûr ce code est a adapté à ton besoin, notamment au niveau du chemin des fichiers à supprimer probablement.

http://php.net/foreach
http://php.net/file
http://php.net/unlink

Re: Suppression de fichiers stockés en base SQL (via Mysql)

par or 1 » 24 mai 2019, 18:09

parcourir les résultats de la recherche et appliquer :
https://www.php.net/manual/fr/function.unlink.php

Suppression de fichiers stockés en base SQL (via Mysql)

par Magalux » 24 mai 2019, 17:51

Bonjour,

Petite question technique, dont la réponse est certainement très simple, ou totalement impossible :roll:

J'ai un site web immobilier, les annonces et leurs photos sont hébergées sur un serveur, et référencées dans une base de données Sql.

J'aimerais faire du tri dans les photos, qui commencent à être très nombreuses. J'ai donc créé une requête sur MySql, qui me permet de sortir la liste des photos dont les annonces sont hors ligne depuis X temps. Jusque là tout va bien.

Je sais supprimer le résultat de la requête, mais ça ne supprimera pas les fichiers en lien, sur le serveur. Et le faire manuellement me prendrais des semaines :shock:

Existe t-il une solution pour supprimer les enregistrements Sql ainsi que les fichiers associés ?
Je n'ai rien trouvé sur google ...

Merci de votre aide