Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] descargar video

Estas en el tema de descargar video en el foro de PHP en Foros del Web. buenas tardes compañeros disculpen la pregunta pero de verdad que ya he investigado por este foro y por internet y no encuentro el detalle del ...
  #1 (permalink)  
Antiguo 08/07/2013, 14:50
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 1 mes
Puntos: 1
descargar video

buenas tardes compañeros disculpen la pregunta pero de verdad que ya he investigado por este foro y por internet y no encuentro el detalle del código o lo que estoy haciendo mal, lo que quiero hacer es decargar videos que se encuentra en mi servidor a un cliente. los videos pesan entre 30 y 40 MB. el codigo es el siguiente tengo una pagina que tiene un combo con los nombres de los archivos con extension wmv el cual pasa a una siguiente pagina despues de hacer submit.. el codigo es el siguiente:

<?php
ob_start();
ob_clean();
session_start();

if (!isset($_POST['slbvideos']) || empty($_POST['slbvideos'])) {
exit();
}
$root = "../../comunes/documentos/";
$file = trim($_POST['slbvideos']);
$path = $root.$file;
$type = '';


if (is_file($path)) {
$size = filesize($path);
if (function_exists('mime_content_type')) {
$type = mime_content_type($path);
} else if (function_exists('finfo_file')) {
$info = finfo_open(FILEINFO_MIME);
$type = finfo_file($info, $path);
finfo_close($info);
}
if ($type == '') {
// $type = "application/force-download";
$type = "application/octet-stream";
}
// Definir headers
header("Content-Type: $type");
header("Content-disposition: attachment; filename=$file");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $size);
// Descargar archivo
readfile($path);
} else {
die("El archivo no existe.");
}
?>

el problema al final es que me descarga un archivo pero cuando lo voy a reproducir en windows me da error y en linux me dice "No se pudo determinar el tipo de flujo".. me meti en php.ini a ver que conseguia y existe una parte que modifique al parecer es para limitar el tamaño del archivo para descargar pero igual no me hace el asunto bien...

upload_max_filesize = 50M
  #2 (permalink)  
Antiguo 08/07/2013, 15:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descargar video

Verifica que no tengas nada después del readfile que este enviando contenido al browser, quita la última ?> para evitar eso ya que puede corromper el archivo.

Saludos.
  #3 (permalink)  
Antiguo 08/07/2013, 15:10
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: descargar video

no compadre el código es tal cual como lo coloque después del readfile esta la condición de que no exista el archivo y mas nada, y le quite el tag de php pero igualito el muy chingo no me baja el vídeo como es....
  #4 (permalink)  
Antiguo 08/07/2013, 15:20
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: descargar video

pense que era nada mas los vídeos pero coloque un pdf y me hace lo mismo lo descarga mal!!!!!
  #5 (permalink)  
Antiguo 08/07/2013, 15:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descargar video

¿y tienes algo antes de la salida del header? Recuerda que no puede tener nada de salida, inclusive un espacio puede corromper la salida...
  #6 (permalink)  
Antiguo 08/07/2013, 15:34
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: descargar video

increíble pero cierto le quite un código que tenia antes... para buscar si el usuario que estaba registrado tenia acceso a esa pagina y en ese caso si lo descargo no entiendo en que afecta que raro aquí te lo pongo para que lo veas:

if(!isset($_SESSION['idusuario']) and ($_SESSION['idusuario']==null)) {
header("Location: ../../warning.php");
}

$pagina="admdoc-documentos";
require ("../../clases/dao/SeguridadDAO.php");
require ("../../clases/dao/UsuarioDAO.php");
$objSeguridadDAO = new SeguridadDAO();
$objUsuarioDAO = new UsuarioDAO();
$Resul_usu = $objUsuarioDAO->ConsultarDatosUsuarioDAO($_SESSION['idusuario']);
$filus = pg_numrows($Resul_usu);
if ($filus>0){
$url='./app/admDocumentos/Manuales.php';
$Resul_Segu = $objSeguridadDAO->ConsultarurlDAO($url,pg_result($Resul_usu, 0, 1));
$filseg = pg_numrows($Resul_Segu);
if ($filseg==0){
header("Location: ../../warning3.php?f=".$pagina);
}else{
if (pg_result($Resul_usu, 0, 11)==null){
header("Location: ../../warning1.php");
}
}
}


lo bueno es que ya se solvento lo malo es que tengo que ver como verifico y que no se meta cualquiera a esa pagina pero al menos ya se que era lo que estaba pasando gracias compañero
  #7 (permalink)  
Antiguo 08/07/2013, 16:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descargar video

Revisa los includes que haces es MUY probable que en alguno de ellos estés enviando algo de contenido de texto al navegador, es por eso que siempre se recomienda eliminar el tag de cierre ?> si el script tiene solo código PHP...

Saludos.

Etiquetas: video
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 14:50.