web-dev-qa-db-fra.com

Obtenez le vrai chemin d'un fichier

Je crée un module de lecture Excel dans Drupal 8. Je veux obtenir le vrai chemin d'un fichier pour le lire à partir d'un chemin comme public: //2016-03/Places.xls.

Quelle fonction dois-je appeler pour obtenir le vrai chemin d'un fichier?

11
Nisam

Enfin, j'ai obtenu la solution en creusant Drupal code.
Nous pouvons obtenir le chemin réel ou le chemin absolu en utilisant le service file_system.

$absolute_path = \Drupal::service('file_system')->realpath('public://2016-03/Places_2.xlsx');
16
Nisam

La réponse @Nisam était correcte mais maintenant elle est déconseillée: fonction drupal_realpath

Obsolète

dans Drupal 8.0.x-dev, sera supprimé avant Drupal 9.0.0. Utilisez\Drupal\Core\File\FileSystem :: realpath ()).

Vous devez donc utiliser FileSystem :: realpath .

Exemple:

$file = File::load($file_id);
$uri = $file->getFileUri();
$stream_wrapper_manager = \Drupal::service('stream_wrapper_manager')->getViaUri($uri);
$file_path = $stream_wrapper_manager->realpath();
13
sanzante