Comunidad de diseño web y desarrollo en internet online

Ocultar rutas relativas de archivos o usar

Citar            
MensajeEscrito el 12 Abr 2011 12:06 am
Hola, mi nombre es Franklin, y necesito su ayuda en lo siguiente:

Actualmente estoy desarrollando un portal de servicios multimedias tipo Netflix (Alquiler de Peliculas, Series, Videos, etc), la primera y gran interrogante que se me ha presentado es como esconder, ocultar o hacer para que las rutas relativas de los archivos de video no queden obvios y cualquier chico con cuatro dedos de frente y un poco de conocimiento html veo el codigo y pueda descargar de forma directa los videos.

yo se que existe el metodo a traves de flash colocando marca de agua u otro que otro metodo, el caso es que la plataforma que se está desarrollando es en base a HTML5 y no se quiere flash.

He encontrado una clase llamada EmbedVideo, pero esta solo trabaja para WikiMedia :cry: pero sería excelente poder adaptarla pero no se como hacerlo.

En varios foros también he encontrado personas con la misma duda y le han aconsejado colocar los archivos fueras del document_root, pero luego no he entendido como hacer el llamado, tengo los archivos en la ruta /var/media/movies/etc/archivo.mp4 pero intento incrustarlo usando

Código PHP :

fopen
, y nada. Usando

Código PHP :

$SERVER['DOCUMENT_ROOT']
y nada! :shock:

Existe alguna clase, función, o algún método a través de PHP que pueda ayudarme a esto?

Por favor sería de gran ayuda...

Gracias de antemano y muchas bendiciones!

Por wtlestudios

3 de clabLevel



Genero:Masculino  

Gráfico Web 3D y Hosting

safari
Citar            
MensajeEscrito el 12 Abr 2011 04:29 pm
Lo que sucede es que el directorio al cual quieres acceder está fuera de los permisos del servidor web. Cuando te han dicho que pongas los archivos fuera del document_root quisieron decir que si tu sitio web está alojado en /htdocs/tuweb porque ahí está el "index" de tu sitio, pongas tus archivos en /htdocs/videos. Ese directorio está fuera del document_root pero está dentro del home del servidor web.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Abr 2011 04:47 pm

DriverOp escribió:

Lo que sucede es que el directorio al cual quieres acceder está fuera de los permisos del servidor web. Cuando te han dicho que pongas los archivos fuera del document_root quisieron decir que si tu sitio web está alojado en /htdocs/tuweb porque ahí está el "index" de tu sitio, pongas tus archivos en /htdocs/videos. Ese directorio está fuera del document_root pero está dentro del home del servidor web.


Hola DriverOp! Gracias por tu respuesta.

Siguiendo tu ejemplo, los archivos de mi web están en:

Código :

/home/www/archivos-de-mi-sitio


Pero los archivos de video los he colocado a la par pero fuera del root:

Código :

/home/media/archivos-de-video


Ya he conseguido una forma de leerlo mediante un archivo hecho en php de esta forma (archivo solo de prueba)

Código PHP :

//
define('BASE_DIR', '/home/ontv/ontv_media/');
//
if(isset($_GET['id'])){
   //
   if($_GET['id']==99){
      $anio       = "2007/";
      $categoria    = "movies/";
      $carpeta    = "i-am-legend/";
      $archivo    = "movie.mp4";
      define('MOVIE_FILE',BASE_DIR.$categoria.$anio.$carpeta.$archivo);
   }
   // SI EL ARCHIVO EXISTE
   if(is_file(MOVIE_FILE)){
      //
      readfile(MOVIE_FILE);
   // SI EL ARCHIVO NO EXISTE
   }else{
      //
      echo "No existe el archivo";
   }
   //readfile();
}


Pero el detalle es que debo sacarlo con una cabecera de mp4 y no se como! :shock:

Por wtlestudios

3 de clabLevel



Genero:Masculino  

Gráfico Web 3D y Hosting

safari
Citar            
MensajeEscrito el 12 Abr 2011 07:49 pm
que envidia me dan cuando tienen hosting con ancho de banda ilimitado, ejejej
prueba antes de enviar tu archivo con readfile envias la cabecera

Código PHP :

header('Content-type: video/mp4');
readfile(MOVIE_FILE); 

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Abr 2011 09:30 pm

tuadmin escribió:

que envidia me dan cuando tienen hosting con ancho de banda ilimitado, ejejej
prueba antes de enviar tu archivo con readfile envias la cabecera

Código PHP :

header('Content-type: video/mp4');
readfile(MOVIE_FILE); 


Gracias por tu respuesta tuadmin!

He probado pero nada que lo carga, he mandado los archivos a dentro del DocumentRoot pero nada.

no entiendo que puede estar pasando... :(

A ver sabras? :D

Por wtlestudios

3 de clabLevel



Genero:Masculino  

Gráfico Web 3D y Hosting

safari
Citar            
MensajeEscrito el 12 Abr 2011 09:35 pm
Actualmente para lo que me quieran ayudar tengo el código que manda el archivo así:

Código PHP :

// RUTA DE ARCHIVOS
define('BASE_DIR', 'ontv_media_files/');
// SI EXISTE ID
if(isset($_GET['id'])){
   //
   if($_GET['id']==99){
      $anio       = "2007/";
      $categoria    = "movies/";
      $carpeta    = "i-am-legend/";
      $archivo    = "movie.mp4";
      define('MOVIE_FILE',BASE_DIR.$categoria.$anio.$carpeta.$archivo);
   }
   // SI EL ARCHIVO EXISTE
   if(is_file(MOVIE_FILE)){
      //
      header("Content-type: video/mp4");
      readfile(MOVIE_FILE);
   // SI EL ARCHIVO NO EXISTE
   }else{
      //
      echo "No existe el archivo";
   }
}


Ayudenme!!! :shock:

Por wtlestudios

3 de clabLevel



Genero:Masculino  

Gráfico Web 3D y Hosting

safari
Citar            
MensajeEscrito el 13 Abr 2011 02:25 pm
te falta varias cabeceras amigo falta la cebecera de cuanto ocupa tu archivo para que el programa sepa cuanto va a descargar y esas cosas
mirate la documentacion
http://es.php.net/readfile
las cabeceras son obligatorias ya que es parte de un protocolo de comunicacion no se las puede ignorar

Código PHP :

 if(is_file(MOVIE_FILE)){ 
    header("Content-type: video/mp4");
    header('Content-Disposition: attachment; filename='.basename(MOVIE_FILE));
    header('Content-Transfer-Encoding: binary');
    header('Pragma: public');
    header('Content-Length: ' . filesize(MOVIE_FILE));

    readfile(MOVIE_FILE);
    exit;
}

haber prueba con eso pero creo que es mejor que googlees un poco sobre cabeceras de video

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Abr 2011 02:58 pm

tuadmin escribió:

te falta varias cabeceras amigo falta la cebecera de cuanto ocupa tu archivo para que el programa sepa cuanto va a descargar y esas cosas
mirate la documentacion
http://es.php.net/readfile
las cabeceras son obligatorias ya que es parte de un protocolo de comunicacion no se las puede ignorar

Código PHP :

 if(is_file(MOVIE_FILE)){ 
    header("Content-type: video/mp4");
    header('Content-Disposition: attachment; filename='.basename(MOVIE_FILE));
    header('Content-Transfer-Encoding: binary');
    header('Pragma: public');
    header('Content-Length: ' . filesize(MOVIE_FILE));

    readfile(MOVIE_FILE);
    exit;
}

haber prueba con eso pero creo que es mejor que googlees un poco sobre cabeceras de video


Ufff muchas gracias tuadmin, dejame probar y te aviso como me fue

Por wtlestudios

3 de clabLevel



Genero:Masculino  

Gráfico Web 3D y Hosting

safari
Citar            
MensajeEscrito el 13 Abr 2011 09:19 pm

tuadmin escribió:

te falta varias cabeceras amigo falta la cebecera de cuanto ocupa tu archivo para que el programa sepa cuanto va a descargar y esas cosas
mirate la documentacion
http://es.php.net/readfile
las cabeceras son obligatorias ya que es parte de un protocolo de comunicacion no se las puede ignorar

Código PHP :

 if(is_file(MOVIE_FILE)){ 
    header("Content-type: video/mp4");
    header('Content-Disposition: attachment; filename='.basename(MOVIE_FILE));
    header('Content-Transfer-Encoding: binary');
    header('Pragma: public');
    header('Content-Length: ' . filesize(MOVIE_FILE));

    readfile(MOVIE_FILE);
    exit;
}

haber prueba con eso pero creo que es mejor que googlees un poco sobre cabeceras de video


Hola tuadmin! ya he hecho las pruebas pero no estoy seguro de que esté funcionando correctamente te dejo los links para ver si soy yo o es que en realidad no funciona.

Soy Leyenda http://www.ontv.com.ve/movie.php?id=7

Desafiando Gigantes [url=http://www.ontv.com.ve/movie.php?id=70][/url]

Si puedes hechale una hojeada haciendo click y entrando a ver si funcinan!

El código ha quedado así

Código PHP :

      // RUTA DEL ARCHIVO
      define('MOVIE_FILE','/home/ontv/ontv_media_files/movies/2007/i-am-legend/movie.mp4');
      // SI EL ARCHIVO EXISTE
      if(is_file(MOVIE_FILE)){
         // 
         header('Content-type: video/mp4');
         header('Content-Disposition: attachment; filename='.basename(MOVIE_FILE)); 
         header('Content-Transfer-Encoding: binary'); 
         header('Pragma: public'); 
         header('Content-Length: ' . filesize(MOVIE_FILE)); 
         // 
         readfile(MOVIE_FILE);
         exit;
      // SI EL ARCHIVO NO EXISTE
      }else{
         //
         echo "No existe el archivo";
      }


Gracias de antemano!

Por wtlestudios

3 de clabLevel



Genero:Masculino  

Gráfico Web 3D y Hosting

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.