2010-08-19 16 views

Respuesta

12

Si Drupal está en su propio dominio (es decir, http://example.com), la ruta absoluta sería /sites/default/files/images/abc.jpg.

Si Drupal está en una subcarpeta (por ejemplo, http://example.com/drupal), la ruta absoluta sería /drupal/sites/default/files/images/abc.jpg.


Como he explicado en mi respuesta a la misma pregunta que ha borrado, si usted está tratando de generar mediante programación la ruta (es decir, no se sabe dónde está el directorio de archivos es), es necesario utilizar file_directory_path():

$image = file_directory_path() . "/images/abc.jpg"; 

Así que si los archivos se encuentran en:

  • sites/default/files: $image = "sites/default/files/images/abc.jpg".
  • sites/example.com/files: $image = "sites/example.com/files/images/abc.jpg".

Asumiendo que su pregunta anterior es todavía el caso de uso, usted debe estar usando l() y theme_image() para generar los enlaces e imágenes, respectivamente, dentro de su módulo. Esto asegurará que las rutas generadas sean correctas dado el entorno de Drupal.

Uso de la salida esperada que ya ha proporcionado antes, una solución sería:

// Images are in drupalroot/sites/default/files/images 
$path = file_directory_path() . '/images/'; 

$detail_file = 'detail_1.jpg'; 
$image_file = '1.jpg'; 

$img = theme('image', $path . $image_file); 

$options = array(
    'attributes' => array(
    'title' => t('Sample title for image 1 lorem ipsum'), 
), 
    'html' => TRUE, 
); 
$output = l($img, $path . $detail_file, $options); 

Así, suponiendo que su sitio está en http://example.com/, la salida sería:

<a href="/sites/default/files/images/default_1.jpg" title="Sample title for image 1 lorem ipsum"> 
    <img src="/sites/default/files/images/1.jpg" height="<image height>" width="<image width>" /> 
</a> 

Pero si su sitio fue en una subcarpeta (por ejemplo http://example.com/drupal), la salida sería:

<a href="/drupal/sites/default/files/images/default_1.jpg" title="Sample title for image 1 lorem ipsum"> 
    <img src="/drupal/sites/default/files/images/1.jpg" height="<image height>" width="<image width>" /> 
</a> 
0

Probé la solución de marca y descubrí que mi directorio es "/sites/default/files/images/a.jpg"

Pero cuando escribo esto en mis nodos como img src, no mostró imágenes relacionadas . Además cuando escribí "../sites/default/files/images/a.jpg" Se trabajó :)

Debido a que en el primer caso, Drupal trató de encontrar el archivo en "contenido/sites/default /files/images/a.jpg "

4

sólo tiene que utilizar

$url_image = url('sites/default/files/'.file_uri_target($uri), array('absolute'=>true)); 

En ese caso, tendrá un camino como" http://www.mywebsite.com/sites/default/files/images/ image.jpeg "

$ uri es un inte rnal path, como "public: // images/image.jpeg"

Esta es Drupal 7, disfrutar de ella, la ama

1

public:// le dará la ruta absoluta de la carpeta pública

Ejemplo: para acceder a

drupal/sites/default/files/images/ 

sólo hay que poner

public://images/ 
10

Para Drupal 7

$relativePath = "blabla/abc.jpg"; 

$uri = file_build_uri($relativePath); 

//show public://blabla/abc.jpg 
echo $uri; 

$url = file_create_url($uri); 

//show http://www.yoursite.com/sites/default/files/blabla/abc.jpg 
echo $url; 
Cuestiones relacionadas