Obteniendo mime tipo de archivos comprimidos

Obtener el tipo mime de un archivo cargado es bastante fácil:

<code>echo mime_content_type($fileatt['tmp_name']);
</code>

Sin embargo, también quiero comprobar los archivos de tipo mime que se incluyen en un archivo comprimido. Después de descomprimir mis archivos (repasando los archivos en el archivo zip y dondei es el archivo actual), lo he intentado:

<code>$info = pathinfo($zip->getNameIndex($i));
echo mime_content_type($info['dirname'] . "\\" . $info['basename']);
</code>

que da el error: Advertencia: mime_content_type () [function.mime-content-type]: el archivo o la ruta no se encontraron '. \ foo.pdf' enC:\Users\<user>\<website>\validation.php en linea 56

Me di cuenta de que eldirname para un archivo comprimido es relativo al archivo zip, no a la ruta absoluta, así que intenté:

<code>$a = pathinfo($fileatt['tmp_name']);
$b = $a['dirname'] . "\\" . $info['basename'];
echo mime_content_type($b);
</code>

que da el error: Advertencia: mime_content_type () [function.mime-content-type]: el archivo o la ruta no se encontraron 'C: \ xampp \ tmp \ foo.pdf' enC:\Users\<user>\<website>\validation.php en linea 56

¿Alguien puede arrojar alguna luz sobre la ruta del archivo? (Sospecho que la respuesta podría ser la misma que el comentario enobteniendo altura y ancho de la imagen de archivos comprimidos, pero hay métodos alternativos?)

ACTUALIZAR

Gracias a Baba, lo siguiente funciona:

<code>$fp = fopen('zip://C:\Users\<user>\<website>\test.zip#foo.jpg', "r");
</code>

(n.b. Solo puedo hacer que esto funcione cuando proporciono la ruta completa del archivo zip, no un archivo tmp como sería el caso cuando un archivo se carga a través de un formulario). Sin embargo, tratando de obtener el tipo mime:echo mime_content_type($fp); genera el error:

<code>Warning: mime_content_type() [function.mime-content-type]: stream does not support seeking in C:\Users\<user>\<website>\includes\validation.php on line 70
</code>

Esto sucede independientemente del tipo de archivo (es decir, el problema indicado en el único comentario enhttp://php.net/manual/en/ziparchive.getstream.php no parece afectarme).

Por cierto, este es también el mismo error que obtengo cuando intento un método diferente:$fp = $zip->getStream('foo.jpg');

Sé que hay varias otras preguntas de 'transmisión no compatible' en SO, pero no pude averiguar cómo se relacionaban con mi problema, y ​​esperaba que dado que este método ha sido específicamente sugerido, alguien podría tener una buena respuesta. .

(p.s. no estoy usando elfinfo_* funciona como mi host actualmente se niega a instalar PHP v5.3).

Respuestas a la pregunta(2)

Su respuesta a la pregunta