Un script para gestionar descargas?

  • Autor Autor royfma
  • Fecha de inicio Fecha de inicio
R

royfma

necesito un script para generar descargas de archivos ocultando el directorio

carpeta: miweb.com/files/dato/1.mp4

salida: miweb.com/script.php?car=files&file=1

con un amigo intentamos hacer eso, descargaba el video pero a la hora de reproducir en la pc daba error y el vídeo era inservible

PHP:
<?php
$carpeta=$_GET['car'];
$file=$_GET['file'];
/*

                   }*/
header("Content-Type: video/mp4");
readfile("files/".$carpeta."/".$file.".mp4");exit();
?>


ya le dimos vueltas a esto pero no sale, si alguien tiene ese codigo por favor nos los puede proporcionar? o si tiene un script mejorado y sabe de esto, estoy dispuesto a pagarlo por su script o trabajo saludos :encouragement:
 
Intenta asi

PHP:
$carpeta=$_GET['car'];
$file=$_GET['file']; 

$archivo = "files/".$carpeta."/".$file.".mp4";

if(file_exists($archivo))
{
	header("Content-Type: application/octet-stream");
	header("Content-Transfer-Encoding: Binary");
	header("Content-disposition: attachment; filename=\"$archivo\""); 
	readfile($archivo);
}
else
{
	header("HTTP/1.0 404 Not Found");
}
 

Me sale el mismo error amigo, al abrir me dice archivo corrupto.



como se ve en la captura no tiene nada de información del video,
algo pasa al renombrar el archivo 😛7:
 
Y el archivo original si se reproduce correctamente?
 
claro, tienen el codec correcto ya le ando dando vueltas desde hace rato y no encuentro nada en google 😕

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

Por:
PHP:
header("Content-Type: video/mp4");
 
en el código que postee ya ponía eso, pero igual lo aplique a tu código y da el mismo error :sorrow:

:sorrow: a ver pasa el link de descarga por MP, yo tengo uno igual y funciona. 😛7:
 
Agrega la cabecera del peso

PHP:
header("Content-Length: ".filesize($archivo));
 
Creo que es tu host, lo probé desde el mío con este código:


Y adivina qué:


:fatigue::fatigue:
 
Listo ya tiene solución y es por el servidor, lo probé en un host compartido de altushost y si descarga como debe de ser.
codigo final :encouragement: no se si quede así nomas o sugieren algo mas? por cierto para proteger los archivos le pondré $refer :encouragement:


PHP:
<?php
$carpeta=$_GET['car']; 
$file=$_GET['file'];  

$archivo = "files/".$carpeta."/".$file.".mp4"; 

if(file_exists($archivo)) 
{  
    header("Content-Length: ".filesize($archivo));    
    header("Content-Type: video/mp4");   
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-disposition: attachment; filename=\"$archivo\"");  
    readfile($archivo); 
} 
else 
{ 
    header("HTTP/1.0 404 Not Found"); 
 }
?>