2015-04-15 60 views
0

我试图使用下面的代码片段作为起点在PHP中的文件中显示图像。使用readfile()使用PHP渲染图像()

该代码段只需要一个文件名,读取该文件并使用正确的Mime类型输出该文件。

# Definimos la ruta del directorio privado. 
# Este es el directorio con permisos de escritura. 
$ruta = './images'; 
$filename = 'Desert.jpg'; 
# El nombre del archivo que se desea servir, lo obtendremos 
# mediante el parámetro 'file' que luego será pasado por la URI 
$file = isset($filename) ? $ruta . "/" . $filename : NULL; 

# Verificamos el valor de $file 
# Si no es NULL, verificamos si el archivo existe antes de proceder 
if(!is_null($file)) { 
    if(file_exists($file)) { 
     # Creamos un recurso fileinfo para obtener el tipo MIME 
     $resource = finfo_open(FILEINFO_MIME_TYPE); 
     # Obtenemos el tipo MIME 
     $mimetype = finfo_file($resource, $file); 
     # Cerramos el recurso 
     finfo_close($resource); 
     # Modificamos los encabezados HTTP 
     header("Content-Type: $mimetype"); 
     header('Content-Length: ' . filesize($file)); 
     # Leemos y mostramos el archivo 
     readfile($file); 
    } 
} 

不幸的是我不能得到它的工作。我已验证fileinfo扩展程序已启用,但没有看到任何错误,图像只是不显示。

任何想法?与

readfile($file); 

前行

+0

编辑澄清这个问题一点。希望它能帮助你得到答案。 –

+0

您是否检查过从服务器获得的实际响应? (查看浏览器中的网络标签)。你得到一个PHP错误?错误的标题? – h2ooooooo

+0

函数['getimagesize()'](http://php.net/manual/en/function.getimagesize.php)返回MIME类型,它包含在PHP核心中,你不需要任何扩展。 – axiac

回答

0

我使用

ob_clean(); 

清晰的缓冲和正常工作,relly我不需要为MIME类型额外的模块,我用mime_content_type too()

!非常感谢!