Как исправить это предупреждение: file_get_contents (): Невозможно найти оболочку "public"? - PullRequest
5 голосов
/ 09 декабря 2010

Мне нужно прочитать мета-информацию из загруженного файла. Но я не знаю, как это сделать.

Вот мой код:

// Path form field_file
$file = 'public://directory/filename.txt';
file_get_contents($file);

Этот код вызывает это предупреждение:

Предупреждение: file_get_contents (): Невозможно найти оболочку "public" - вы забыли включить ее при настройке PHP?

Есть идеи, что я делаю не так, пожалуйста?

Ответы [ 3 ]

4 голосов
/ 09 декабря 2010

Существует три внутренних потоковых оболочки private , public и временные , они определены в этом файле.

Возможно, вы захотите file_get_mimetype () , file_get_contents - это функция PHP и не будет знать о api файла drupal.

file_get_contents(drupal_realpath($file));

Сделал бы трюк для чтения.

Для загрузки взгляните на file_save_upload ()

2 голосов
/ 29 сентября 2013

Я считаю, что эти оболочки не доступны на hook_boot() или некоторых других ранних этапах. Поэтому, пожалуйста, переместите свой код в другое место и проверьте, может ли это решить проблему.

0 голосов
/ 09 июня 2011

Я использую следующее исправление:

echo base_path().variable_get('file_public_path',conf_path().'/files');

Это все еще не объясняет, почему потоки не работают.

...