¿Cómo puedo almacenar programáticamente una imagen en una ubicación de acceso público en mi sitio de Drupal?

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

Pregunta

Estoy escribiendo un módulo Drupal donde los usuarios envían contenido (formateado como HTML). El contenido casi siempre incluirá <img> Etiquetas. Esas etiquetas harán referencia al servidor del usuario. Pero no quiero presionar al servidor del usuario cada vez que se solicite ese contenido; Quiero servir una versión en mi servidor.

Entonces, he escrito una función para buscar el HTML para <img> Etiquetas y luego use curl para guardarlas localmente. Todo está bien, excepto que no puedo entender en qué parte del sistema de archivos local almacenar las imágenes, gracias a la loca reescritura de URL de Drupal. Idealmente, podría ponerlos en un directorio que ya esté accesible en la web y no tener que crear directorios nuevos.

¿Alguna idea?

Tia,
Benjy

PD: No es realmente factible usar un ImageField Como necesito mostrar la imagen en línea. ¡Gracias!

¿Fue útil?

Solución

En teoría, deberías poder ponerlos en cualquier lugar bajo la raíz web, y serán serviciales, pero normalmente, las imágenes de contenido (a diferencia de las imágenes del tema) van en tu files directorio, que generalmente se configura como /sites/default/files. Por lo general, pongo una subcarpeta para agregar algo de estructura, por lo que los pondría en /sites/default/files/images/scraped (o lo que sea).

Nota: puede obtener la ruta del archivo con file_directory_path. También puede mirar el API de manejo de archivos.

Otros consejos

¿Por qué no lo pones en el directorio de Drupal? Por defecto, sitios/predeterminado/archivos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top