Foros del Web » Programando para Internet » PHP »

download con resume desde php

Estas en el tema de download con resume desde php en el foro de PHP en Foros del Web. que tal en estos foros me encontre un script en php con la posibilidad de resume lo he probado pero no me acepta el resume, ...
  #1 (permalink)  
Antiguo 05/08/2004, 16:15
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
download con resume desde php

que tal
en estos foros me encontre un script en php con la posibilidad de resume lo he probado pero no me acepta el resume, por todo lo demas funciona perfecto, creo que uno de los requisitos era que estubiera corriendo bajo php como modulo de apache, en mi PC no esta instalado de ese modo pero prove en un servidor de hosting y tampoco acepta el resume, les pongo el codigo a ver que le ayan.

Código PHP:
<?
// Si usas PHP inferior a 4.1.x usar $headers=$HTTP_RANGE; (y register_globlas a ON)
$headers $_SERVER['HTTP_RANGE'];
define(PATH$_SERVER["DOCUMENT_ROOT"] . "/");  //path absoluto de los ficheros
if ($headers[Range]){
$pos=strpos ($headers[Range], "bytes=");
$pos2=strpos($headers[Range],"-");
$bytes=substr ($headers[Range], $pos+strlen("bytes="),$pos2-($pos+strlen("bytes=")));
}else{
$bytes=0;
}
settype ($bytes"integer");

$tarchivo=filesize($absfile)-$bytes;
$ttotal=filesize($absfile);

error_reporting(0);

header("Last-Modified: " gmdate("D, d M Y H:i:s T"filemtime($absfile)));
header("Accept-Ranges: bytes");
header("Content-Length: " $tarchivo);
header("Content-Disposition: attachment; filename="."$filedown");
//indicamos al cliente que bytes del archivo vamos a transferir
//en este caso es desde $bytes hasta el final del archivo
//que es lo que nos pide el get right normalmente
//se puede modifcar tomando el ultimo byte del rango
//para hacer mirroring tipo kazaa (seria una version mas avanzada)
header("Content-Range: bytes ".$bytes."-".($ttotal-1)."/".$ttotal);

header("Content-Type: application/octet-stream");

//abrimos el archvo
$fp fopen($absfile,'rb');

if (!
$fp) {
echo 
"error de apertura";
exit();
}
//nos movemos hasta el byte donde debemos empezar a mandar informacion
rewind ($fp);
fseek ($fp$bytes);

//mandamos el pedazo de archivo correspondiente
// la funcion fpassthru() es similar a readfile() en que manda el archivo por la salida estandar (mejor que usar un ciclo con fread adentro),
// la diferencia con readfile es que debe ser abierto con fopen, esta funcion devuelve todos los bytes por la salida estandar
//  desde la posicion actual del puntero hasta el final del archivo
if(!fpassthru($fp)) {
echo 
"error de salida";
exit();
}

header("Connection: close");

exit();
?>
  #2 (permalink)  
Antiguo 05/08/2004, 19:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
¿Supongo que usas el código publicado en las FAQ's?:

http://www.forosdelweb.com/showthrea...781#post306781

Por mi parte no he tenido la oportunidad de probar y estudiar dicho ejemplo .. pero si que recuerdo que el autor indicó que necesitaba que PHP corra como módulo de Apache por el tipo de cabeceras HTTP que hace hacia el servidor HTTP (Apache).

Revisa si tu servicio de hosting usa PHP como módulo de Apache y .. si puedes, contacta al autor original y nos comentan que tal les fué (en las FAQ's del link que dejé tienes al autor indicado).

Un saludo,
  #3 (permalink)  
Antiguo 05/08/2004, 20:41
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
precisamente es ese script, yo suponia que mi servidor tiene instalado php como modulo de apache, pero la verdad no estoy seguro, ya les envie la consulta pero aun no me responden, agradesco tu respuesta cluster
  #4 (permalink)  
Antiguo 05/08/2004, 20:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Puedes ver tu mismo ese detalle haciendo un phpinfo()

Código PHP:
<?
phpinfo
();
?>
Ahí veras la configuración de PHP en general .. y en el primer bloque de información verás una reseña que dice "Server API" .. ahí dirá "Apache" (se refiere a "módulo") o CGI (o FastCGI) .. o algo similar.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:33.