web-dev-qa-db-ja.com

ファイルの実際のパスを取得する

Drupal 8.でExcel読み取りモジュールを作成しています。public://2016-03/Places.xlsのようなパスからファイルを読み取るために、ファイルの実際のパスを取得したいのですが。

ファイルの実際のパスを取得するには、どの関数を呼び出す必要がありますか?

11
Nisam

最後に、Drupalコードを掘り下げることで解決策を得ました。
file_systemサービスを使用して、実際のパスまたは絶対パスを取得できます。

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

@Nisamの答えは正しかったが、現在は非推奨になっている: function drupal_realpath

非推奨

Drupal 8.0.x-devの前に削除されますDrupal 9.0.0。\ Drupal\Core\File\FileSystem :: realpath()を使用します。

したがって、 FileSystem :: realpath を使用する必要があります。

例:

$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