如何修复此警告:file_get_contents():无法找到包装“public”?

时间:2010-12-09 13:34:41

标签: php drupal filestream drupal-7

我需要从下载的文件中读取一些元信息。但我不知道该怎么做。

这是我的代码:

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

此代码会导致此警告:

  

警告:file_get_contents():无法找到包装器“public” - 您是否忘记在配置PHP时启用它?

请问我做错了什么?

3 个答案:

答案 0 :(得分:4)

有三个内部流包装私有公共临时,它们在this文件中定义。

您可能需要file_get_mimetype(),file_get_contents是一个PHP函数,并且不会知道drupal文件api。

file_get_contents(drupal_realpath($file));

会做阅读的技巧。

要上传,请查看file_save_upload()

答案 1 :(得分:2)

我认为hook_boot()或其他一些早期阶段无法使用这些包装。 因此,请将您的代码移到另一个地方,并检查这是否可以解决问题。

答案 2 :(得分:0)

我正在使用的修复程序是以下代码:

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

它仍然无法解释为什么流不起作用。