Comment puis-je stocker par programme une image dans un emplacement accessible au public sur mon site Drupal?

StackOverflow https://stackoverflow.com/questions/2143318

Question

J'écris un module Drupal où les utilisateurs envoient du contenu (formaté en HTML). Le contenu inclura presque toujours <img> Mots clés. Ces balises feront référence au serveur de l'utilisateur. Mais, je ne veux pas appuyer sur le serveur de l'utilisateur à chaque fois que le contenu est demandé; Je veux servir une version sur mon serveur.

Donc, j'ai écrit une fonction pour parcourir le HTML pour <img> Tags, puis utilisez Curl pour les enregistrer localement. Tout va bien - sauf que je ne peux pas comprendre où dans mon système de fichiers local pour stocker les images, grâce à la cramponnet folle de Drupal. Idéalement, je pourrais les mettre dans un répertoire déjà accessible sur le Web et ne pas avoir à créer de nouveaux répertoires.

Des pensées?

Tia,
Benjy

PS: pas vraiment possible pour utiliser un ImageField Comme je dois afficher l'image en ligne. Merci!

Était-ce utile?

La solution

En théorie, vous devriez être en mesure de les mettre n'importe où sous le webroot, et ils seront serviables, mais normalement, les images de contenu (par opposition aux images du thème) vont dans votre files répertoire, qui est généralement configuré comme /sites/default/files. Habituellement, je mets un sous-dossier pour ajouter de la structure, alors je les mettrais /sites/default/files/images/scraped (ou peu importe).

Remarque: vous pouvez obtenir le chemin du fichier avec file_directory_path. Vous pourriez également regarder le API de gestion de fichiers.

Autres conseils

Pourquoi ne le mettez-vous pas dans Drupal Directory? Par défaut, sites / par défaut / fichiers

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top