web-dev-qa-db-fra.com

Supprimer un fichier téléchargé via le champ?

Est-il possible de supprimer un fichier non utilisé en dehors du contexte d'un widget de champ dans Drupal 8?

J'ai essayé de trouver un itinéraire comme admin/file/{file}/delete mais ne voit vraiment rien dans le module de fichiers pour effectuer cette opération.

I a trouvé ce problème , que je suppose lié. La question demeure donc: comment supprimer des fichiers? J'ai défini "Supprimer les fichiers orphelins après" sur Jamais dans l'administrateur afin que les fichiers ne soient pas par erreur supprimés, ce qui m'est arrivé il y a quelques mois.

3
Kevin

J'ai fini par créer une solution pour ne plus avoir à me soucier des chemins de fichiers, ce qui a supprimé la nécessité de contrôler explicitement le fichier en cours de suppression.

Téléchargement de l'entité multimédia

Maintenant, je peux réinitialiser le système pour supprimer les fichiers orphelins, mon réel lecteur ici était de conserver l'url du fichier (sites/default/files/foo.pdf ) en constante évolution, ce qui introduit cette énigme.

0
Kevin

Il n'y a aucune fonctionnalité pour cela dans le noyau de l'interface utilisateur. Vous pouvez faire un chargement + suppression d'entité avec drush ev/core-cli ou console, mais c'est fondamentalement votre seule option.

L'entité de fichier offre une interface utilisateur pour cela, mais vous ne voulez peut-être pas pour l'utiliser plus .

Cela dit, définir ce paramètre sur Jamais n'est à mon humble avis pas la bonne solution, car il ne supprime pas non plus les fichiers qui ont été uniquement téléchargés mais ensuite supprimés par exemple ou jamais vraiment soumis. Voir https://www.drupal.org/node/2801777 pour plus d'informations et une autre solution pour cela.

Cela dit, lors de l'utilisation de media_entity, il devrait être sauvegardé pour configurer Drupal pour supprimer les fichiers inutilisés car l'entité multimédia elle-même comptera toujours comme une utilisation du fichier, donc elle ne sera supprimée que si vous supprimez manuellement une entité multimédia.

4
Berdir

Contribué Drupal module Views Bulk Operations a la version D8 Beta qui peut vous aider.

Installez le module, modifiez la vue Fichiers, ajoutez le champ global "Vues des opérations en bloc" et configurez-le pour inclure l'action "Supprimer les entités sélectionnées".

Le module est actuellement limité du point de vue Admin car il ne permet qu'à la personne qui a téléchargé le fichier d'exécuter la suppression. Essayer de le faire comme quelqu'un d'autre (y compris l'utilisateur-1) échouera (avec un message d'erreur de journal). Espérons que cette limitation sera corrigée dans les versions à venir.

0
devad