Ho alcune immagini in drupal/sites/default/files/images /.come ottenere il percorso assoluto per un'immagine in drupal?
Come posso ottenere il percorso assoluto per un'immagine come abc.jpg inserita in questa directory?
Ho alcune immagini in drupal/sites/default/files/images /.come ottenere il percorso assoluto per un'immagine in drupal?
Come posso ottenere il percorso assoluto per un'immagine come abc.jpg inserita in questa directory?
Se Drupal è nel proprio dominio (ad esempio, http://example.com
), il percorso assoluto sarà /sites/default/files/images/abc.jpg
.
Se Drupal si trova in una sottocartella (ad esempio http://example.com/drupal
), il percorso assoluto sarà /drupal/sites/default/files/images/abc.jpg
.
Come ho spiegato nella mia risposta alla stessa domanda è stata eliminata, se si sta cercando di generare a livello di codice il percorso (cioè, non si sa dove la directory dei file è), è necessario utilizzare file_directory_path()
:
$image = file_directory_path() . "/images/abc.jpg";
Quindi, se i file sono in:
$image = "sites/default/files/images/abc.jpg"
.$image = "sites/example.com/files/images/abc.jpg"
.Supponendo che la tua domanda precedente è ancora il caso d'uso, si dovrebbe utilizzare l()
e theme_image()
per generare i link e le immagini, rispettivamente entro il modulo. Ciò garantirà che i percorsi generati siano corretti in base all'ambiente di Drupal.
Utilizzando l'output previsto che hai fornito in precedenza, una soluzione potrebbe essere:
// 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);
Quindi, supponendo che il sito è a http://example.com/
, l'output sarà:
<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>
Ma se il vostro sito è stato in una sottocartella (ad esempio http://example.com/drupal
), l'output sarà:
<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>
Ho provato la soluzione di mark e ho scoperto che la mia directory è "/sites/default/files/images/a.jpg"
Ma quando scrivo questo nei miei nodi come img src, non ha mostrato immagini correlate . Oltre Quando ho scritto "../sites/default/files/images/a.jpg" ha funzionato :)
Perché nel primo caso, Drupal ha cercato di trovare il file in "contenuti/siti/default /files/images/a.jpg "
Basta usare
$url_image = url('sites/default/files/'.file_uri_target($uri), array('absolute'=>true));
In questo caso si avrà un percorso di tipo" http://www.mywebsite.com/sites/default/files/images/ image.jpeg "
$ uri è un inte percorso finale, come "public: // images/image.jpeg"
Questo è Drupal 7, godere, lo amano
public://
vi darà il percorso assoluto della cartella pubblica
Esempio: per accedere
drupal/sites/default/files/images/
appena messo
public://images/
Per 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;
file_directory_path è stato rimosso in drupal 7. Se lo si utilizza, si riceverà un errore "chiamata a funzione non definita". Prova ad usare drupal_real_path o. Puoi trovare informazioni sulla funzione deprecata qui. http://api.drupal.org/api/drupal/includes!file.inc/function/file_directory_path/6