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");
}
 
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.

3423.webp

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:
Captura.webp

Y adivina qué:
xt6mOWk.png


: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"); 
 }
?>
 
Atrás
Arriba