Um script para gerenciar downloads?

  • Autor Autor royfma
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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:
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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");
 
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:
 
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"); 
 }
?>
 
Voltar
Topo