2010-12-09 17 views
5

Necesito leer algo de metainformación del archivo descargado. Pero no sé cómo hacerlo.Cómo corregir esta advertencia: file_get_contents(): ¿No se puede encontrar el contenedor "público"?

Aquí está mi código:

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

Este código hace que esta advertencia:

Warning: file_get_contents(): No se puede encontrar el envoltorio "público" - ¿Usted se olvidó a fin de que cuando configuró PHP?

¿Alguna idea de lo que estoy haciendo mal, por favor?

+1

¿Qué es el contenedor "público"? Nunca lo oí. ¿Es esto algo específico de Drupal? ¿Qué tipo de metainformación necesitas para leer de qué archivo descargado? –

+0

http://drupal.org/node/555118 Sí, es una envoltura específica de drupal. Necesito obtener el nombre y el tipo de letra del archivo TTF. –

Respuesta

4

Hay tres envolturas de flujos internos privado, público y temporal, que se definen en this archivo.

Es posible que desee file_get_mimetype(), file_get_contents es una función de PHP y no tendrá en cuenta la api del archivo drupal.

file_get_contents(drupal_realpath($file)); 

Haría el truco para leer.

Para una carga echar un vistazo a file_save_upload()

+0

Gracias. Pero funciona extraño. Si "directorio" no existe, drupal_realpath devolverá FALSE. –

0

La solución que estoy usando es el siguiente código:

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

Todavía no explica por qué las corrientes no están funcionando.

2

Creo que estas envolturas no están disponibles en hook_boot() o en otras etapas iniciales. Así que mueva su código a otro lugar y verifique si esto solucionaría el problema.

Cuestiones relacionadas