Comment obtenir le répertoire de téléchargement de fichiers par défaut de Drupal 7?


21

J'ai du mal à obtenir le téléchargement direct de drupal. Existe-t-il une fonction renvoyant le chemin relatif ou absolu?


1
Pensez à utiliser des emballages ( public://, private://, etc. pour éviter tout conflit de dossier Profitez de Drupal 7 :).)
AyeshK

Je sais que cela fonctionne avec image_style_url (uri) mais je veux le passer à javascript en tant que variable pour un traitement
ultérieur

Réponses:


24

Ces informations sont enregistrées dans le tableau des variables de Drupal. Utilisez la variable_getfonction pour obtenir ces informations en transmettant le nom de la variable correcte:

  • Emplacement du système de fichiers public :variable_get('file_public_path', conf_path() . '/files');
  • Emplacement du système de fichiers privé :variable_get('file_private_path');

Si vous souhaitez utiliser le répertoire de téléchargement temporaire variable_get('file_temporary_path');Si vous souhaitez déterminer le répertoire de téléchargement spécifique au système, quelle que soit la configuration réelle du site, utilisez la file_directory_tempfonction.

variable_get('file_public_path', conf_path() . '/files'); tirera le chemin par défaut pour vous au cas où il n'aurait pas été modifié ou explicitement défini par l'administrateur du site.


hmm dans mon cas variable_get ('file_public_path') est vide ... dois-je l'appeler dans un hook ou plus?
Jurudocs

1
@Jurudocs Utilisez ceci à la place: variable_get('file_public_path', conf_path() . '/files');Fondamentalement, il tire le chemin par défaut pour vous au cas où il n'aurait pas été modifié ou explicitement défini par l'administrateur du site.
9ee1

@zhilevan Vérifiez vos autorisations de fichier sur ce répertoire.
Atomox

Cela ne donne que le chemin relatif qui semble moins utile que le chemin absolu. J'aime la drupal_realpathsolution ci-dessous. Semble plus légitime.
Alex Finnarn

11

Pour obtenir les chemins absolus du système de fichiers, utilisez drupal_realpath (API Drupal) au lieu de file_create_url:

drupal_realpath('public://'); 
// returns e.g. /var/www/drupal/sites/default/files

drupal_realpath('private://');
// returns e.g. /var/www/drupal/sites/default/files_private

3

Vous pouvez également utiliser ces fonctions pour obtenir une URL valide à partir d'un uri relatif:

file_create_url('public://');
file_create_url('private://');

Ils renvoient le chemin vers les dossiers publics ou privés.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.