Read File PHP

function readfile_chunked($filename,$retbytes=true) {
$chunksize = 1*(1024*1024); // cuantos bytes en cada parte, un mega
$buffer = ”;
$cnt =0; // para servir el tamaño
$handle = fopen($filename, ‘rb’); // abrimos archivo
if ($handle === false) {
return false;
}
while (!feof($handle)) {
set_time_limit(0); // definimos tiempo ilimitado de ejecución
$buffer = fread($handle, $chunksize); // leemos un trozo
echo $buffer; // lo servimos
ob_flush(); // nos aseguramos que la caché llegue a la petición
flush(); // idem de lo anterior, depende del cliente en ocasiones, poner los dos no hará daño
if ($retbytes) {
$cnt += strlen($buffer); // vamos sumando los bytes servidos
}
}
$status = fclose($handle); // cerramos archivo
if ($retbytes && $status) {
return $cnt; // todo bien ? devuelve el número de bytes leidos, como hace readfile()
}
return $status; // errores ? lo mismo, lo devolvemos
}

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: