Foros del Web » Programando para Internet » PHP »

Problemas al subir videos FLV

Estas en el tema de Problemas al subir videos FLV en el foro de PHP en Foros del Web. Buenas gente, Hace poco consegui dar con un código interesante (ya de paso lo comparto con vosotros) para subir archivos de video flv al servidor. ...
  #1 (permalink)  
Antiguo 08/07/2011, 10:57
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Pregunta Problemas al subir videos FLV

Buenas gente,

Hace poco consegui dar con un código interesante (ya de paso lo comparto con vosotros) para subir archivos de video flv al servidor.

Aunque ahora mismo estoy bloqueado por que no consigo superar una tonteria, no veo el fallo.

El programa esta formado por 2 php, uno con el formulario (el cual no tiene secreto) y el segundo que es el que no acabo de conseguir que funcione:

El código es el siguiente:
Código PHP:
Ver original
  1. <html>
  2. <head>
  3.     <title>Video Upload con PHP | COLORATE</title>
  4. <link rel="stylesheet" href="estilo.css" type="text/css" media="screen" />
  5. </head>
  6. <body>
  7.     <div id="container">
  8.    
  9.         <div id="top">
  10.         <h1>UPLOAD VIDEO EN PHP | COLORATE</h1>
  11.       </div>
  12.  
  13.         <div id="leftSide">
  14.             <fieldset>
  15.             <legend>Resultado Upload Video</legend>
  16.             <p class="username">
  17.  
  18. <?php
  19.  
  20.     $status = "";
  21.     $error = "";
  22.     $cont_error = 0;
  23.    
  24.     $cliente    = $_POST['cliente'];
  25.     $titulo     = $_POST['title'];
  26.     $director = $_POST['director'];
  27.     $video      = $_FILES['video']['name'];
  28.    
  29.     $tamano     = $_FILES['video']['size'];
  30.     $tipo       = $_FILES['video']['type'];
  31.     $archivo    = $_FILES['video']['name'];
  32.    
  33.     //Tamaño en bytes. Este tamaño son 10mb
  34.     //20mb --> 20479940,23 bytes
  35.     //5mb  --> 5119985
  36.     $limite_tamano = 5119985;
  37.     $tipo_archivo = "application/octet-stream";
  38.     $target_path = "uploads/";
  39.    
  40.    
  41.     //Comprobamos que se ha llegado a este punto a través del formulario
  42.     if ($_POST["action"] == "upload"){
  43.      
  44.       //Comprobamos que todos los campos estén informados
  45.       if ($cliente == "" || $titulo == "" || $director == "" || $archivo == "") {
  46.         $cont_error += 1;
  47.         $error .= "Error" . $cont_error . ": Por favor, rellene todos los campos<br>";
  48.       }else{
  49.         //Comprobamos que el tipo de extensión sea .FLV
  50.         if ($tipo != $tipo_archivo){
  51.                 $cont_error += 1;
  52.                 $error .= "Error" . $cont_error . ": Tipo de fichero erróneo: El fichero seleccionado es de tipo " . $tipo . "<br>";
  53.                 $error .= "Por favor, selecciona un fichero de tipo .FLV<br>";
  54.             }else{
  55.                 //Comprobamos que el tamaño del archivo no supere
  56.                 //el que hemos predefinido en $limite_tamano
  57.                 if ($tamano > $limite_tamano ){
  58.                     $cont_error += 1;
  59.                     $error .= "Error" . $cont_error . ": El fichero seleccionado es demasiado grande. Su tamaño debe ser menor de " .  $limite_tamano . "<br>";
  60.             }
  61.             else{
  62.                     //Añadimos el archivo a la ruta "uploads/nombrearchivo.extension"
  63.                         $target_path = $target_path . basename($archivo);
  64.  
  65.                         if (move_uploaded_file($_FILES['video']['tmp_name'],$target_path )){
  66.                         $status = "Archivo subido: <b>".$archivo."</b>";
  67.                             echo "<h4>ENVIO CORRECTO</h4>";
  68.                             echo "<p>Cliente: " . $cliente . "<br>";
  69.                             echo "<p>Título: " . $titulo . "<br>";
  70.                             echo "<p>Director: " . $director . "<br>";
  71.                            
  72.                             echo "<p>Destino: " . $target_path . "<br>";
  73.                             echo "Tamaño: " . $tamano . "<br>";
  74.                         echo "Tipo: " . $tipo . "<br>";
  75.                     } else {
  76.                             $status = "Error al subir archivo";
  77.                     }
  78.                         echo $status . "<br>";
  79.                        
  80.                 }
  81.             }
  82.         }
  83.         //Si existe algún error, los escribimos.
  84.         if ($error != ""){
  85.             echo "<p style=color:red>" . $error . "</p><br>";
  86.         }
  87.            
  88.     }else{
  89.         //Si se ha accedido al script sin pasar por el formulario
  90.         //nos envía al formulario
  91.         echo "<p style=color:red>Por favor, ingrese a esta página
  92.                     desde el formulario: <a href=form2.php>Formulario Uplaod</a></p><br>";
  93.     }
  94.      
  95. ?>
  96.                 </p>
  97.             </fieldset>
  98.         </div> <!-- Cierra div leftSide-->
  99.     </div> <!-- Cierra div container-->
  100. </body>
  101. </html>

El error que me da es:

Notice: Undefined index: cliente in C:\xampp\htdocs\validar.php on line 24

Notice: Undefined index: title in C:\xampp\htdocs\validar.php on line 25

Notice: Undefined index: director in C:\xampp\htdocs\validar.php on line 26

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 27

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 29

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 30

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 31

Notice: Undefined index: action in C:\xampp\htdocs\validar.php on line 42


Soy consciente de que es un error de novato pero es que aún lo soy jejeje.

Alguien ve el fallo?

Saludos :)
  #2 (permalink)  
Antiguo 08/07/2011, 10:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 7 meses
Puntos: 2534
Respuesta: Problemas al subir videos FLV

Te invito a leer el siguiente tema:
http://www.forosdelweb.com/f18/undef...riable-923992/

Ahí se explica el por qué de estos errores tan comunes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/07/2011, 10:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años, 6 meses
Puntos: 2135
Respuesta: Problemas al subir videos FLV

El error te lo da porque esas variables no existen, para que existan debes de llamar al script desde un formulario por POST, es por eso que te da esos notices.

Saludos.
  #4 (permalink)  
Antiguo 08/07/2011, 11:34
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problemas al subir videos FLV

Entonces (sino he entendido mal) escribiendo lo siguiente:
Código PHP:
Ver original
  1. $cliente = isset($_POST['cliente']) ? $_POST['cliente'] : null;

deberia bastar, no?

Yo creia que el proceso era el siguiente:

1. Crear el formulario.
2. Crear una página de validación y ahi escribiendo simplemente: $cliente=$_POST['cliente'] ya estaria.

En teoria con esto en la 1r. escribo lo que sea en 'cliente' y luego cojo lo que haya escrito en 'cliente' y con la página de validación le asigno una variable para su uso, no?
Entonces, que proceso deberia seguir?

Grácias por vuestra paciencia jejeje ;)

PS: Cúal es el formato más utilizado para videos? Lo digo por que estaba subiendo con este formato (.flv) y supongo que más adelante tendré problemas a la que alguien me quiera subir algo que no sea en ese formato. Cómo lo solucionariais vosotros?
  #5 (permalink)  
Antiguo 08/07/2011, 11:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años, 6 meses
Puntos: 2135
Respuesta: Problemas al subir videos FLV

Subir FLV es lo mismo a subir cualquier archivo, te recomiendo te des una vuelta por el manual para que te desenvuelvas y aprendas como manejar y subir archivos con PHP.

Saludos.
  #6 (permalink)  
Antiguo 08/07/2011, 13:19
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problemas al subir videos FLV

Oki GatorV eso haré.

Por lo que respecta al tema de los $_POST, voy bien encaminado con mi mensaje anterior? Lo de indices indefinidos me esta matando, no entiendo por que tengo que darle un valor si en teoria cuando el usuario rellena el formulario ya coje un valor, no?

Saludos.

PS: Merezco una paliza skin o que me fusilen, lo sé jeje.
  #7 (permalink)  
Antiguo 08/07/2011, 13:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años, 6 meses
Puntos: 2135
Respuesta: Problemas al subir videos FLV

Pues te digo asegurate que en tu formulario estas haciendo un POST directamente al archivo php que quieres ver, y asegurate que el formulario tenga el método POST definido.

Saludos.
  #8 (permalink)  
Antiguo 09/07/2011, 04:21
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problemas al subir videos FLV

Mirando el código creo que lo tengo bien, vaya, al menos si nos estamos refiriendo a lo mismo GatorV. He entendido que te referias si al principio del form, habia declarado el method="POST", si es asi, si que lo habia echo. Entonces, partiendo de aquí, sigo sin saber cómo tengo que solucionar el problema con los undefined index. Me falta algo de código?

El código del formulario que tengo es el siguiente:
Código PHP:
Ver original
  1. <html>
  2. <head>
  3.     <title>Video Upload con PHP | COLORATE</title>
  4.     <link rel="stylesheet" href="estilo.css" type="text/css" media="screen" />
  5. </head>
  6. <body>
  7.     <div id="container">
  8.    
  9.     <div id="top">
  10.     <h1>UPLOAD VIDEO EN PHP | COLORATE</h1>
  11.   </div>
  12.  
  13.     <div id="leftSide">
  14.   <fieldset>
  15.         <legend>Upload Video</legend>
  16.         <form action="validar.php" method="POST" class="form" enctype="multipart/form-data">
  17.            
  18.            <!-- CLIENTE -->
  19.             <label for="cliente">Cliente</label>
  20.         <div class="div_texbox">
  21.             <input name="cliente" type="text" class="username" id="cliente" />
  22.             </div>
  23.            
  24.             <!-- TITULO -->
  25.             <label for="name">Título</label>
  26.         <div class="div_texbox">
  27.             <input name="title" type="text" class="username" id="title" />
  28.             </div>
  29.            
  30.             <!-- DIRECTOR -->
  31.         <label for="username">Director</label>
  32.         <div class="div_texbox">
  33.             <input name="director" type="text" class="username" id="director" />
  34.             </div>
  35.            
  36.             <!-- SELECCIONAR FICHERO -->
  37.             <label for="username">Video (.mov)</label>
  38.         <div class="div_texbox">
  39.             <input type="file" name="video" class="username"  tabindex="3" />
  40.             </div>
  41.            
  42.             <!-- BOTON ENVIAR -->
  43.             <div class="button_div">
  44.                 <input name="submit" type="submit" value="Enviar" class="buttons" onclick="javascript:bar1.showBar()" />
  45.             </div>
  46.             <input name="action" type="hidden" value="upload" />
  47.            
  48.         </form>
  49.     </fieldset>
  50.     </div>
  51. </div> <!-- Cierra Container -->
  52. </body>
  53. </html>

Grácias por vuestro tiempo :)
  #9 (permalink)  
Antiguo 12/07/2011, 06:34
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Pregunta Subir Videos FLV VS. PHP.INI

Buenas gente,

Hace poco encontré y adapte un código para subir archivos de video FLV. Actualmente no me funciona por que me da el error de:
Notice: Undefined index: cliente in C:\xampp\htdocs\validar.php on line 24

Notice: Undefined index: title in C:\xampp\htdocs\validar.php on line 25

Notice: Undefined index: director in C:\xampp\htdocs\validar.php on line 26

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 27

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 29

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 30

Notice: Undefined index: video in C:\xampp\htdocs\validar.php on line 31

Notice: Undefined index: action in C:\xampp\htdocs\validar.php on line 42


Asi que se lo pasé a un amigo para ver si a él le funcionaba, lo sorprendente fue que si que le funcionaba y sin tener desactivados los notice. Por lo que pensé que puede que mi fallo estubiera en una mala configuración del PHP.INI.

Vosotros que creeis? Es un error de que me falta declarar algo o realmente es algo que falta por configurar en php.ini?

Para prevenir, os enseño mi código(son 2 archivos, uno es un formulario para subir el video y el otro es para validar la información):


form.php:
Código PHP:
Ver original
  1. <html>
  2. <head>
  3.     <title>Video Upload con PHP | COLORATE</title>
  4.     <link rel="stylesheet" href="estilo.css" type="text/css" media="screen" />
  5. </head>
  6. <body>
  7.     <div id="container">
  8.    
  9.     <div id="top">
  10.     <h1>UPLOAD VIDEO EN PHP | COLORATE</h1>
  11.   </div>
  12.  
  13.     <div id="leftSide">
  14.   <fieldset>
  15.         <legend>Upload Video</legend>
  16.         <form action="validar.php" method="POST" class="form" enctype="multipart/form-data">
  17.            
  18.            <!-- CLIENTE -->
  19.             <label for="cliente">Cliente</label>
  20.         <div class="div_texbox">
  21.             <input name="cliente" type="text" class="username" id="cliente" />
  22.             </div>
  23.            
  24.             <!-- TITULO -->
  25.             <label for="name">Título</label>
  26.         <div class="div_texbox">
  27.             <input name="title" type="text" class="username" id="title" />
  28.             </div>
  29.            
  30.             <!-- DIRECTOR -->
  31.         <label for="username">Director</label>
  32.         <div class="div_texbox">
  33.             <input name="director" type="text" class="username" id="director" />
  34.             </div>
  35.            
  36.             <!-- SELECCIONAR FICHERO -->
  37.             <label for="username">Video (.mov)</label>
  38.         <div class="div_texbox">
  39.             <input type="file" name="video" class="username"  tabindex="3" />
  40.             </div>
  41.            
  42.             <!-- BOTON ENVIAR -->
  43.             <div class="button_div">
  44.                 <input name="submit" type="submit" value="Enviar" class="buttons" onclick="javascript:bar1.showBar()" />
  45.             </div>
  46.             <input name="action" type="hidden" value="upload" />
  47.            
  48.         </form>
  49.     </fieldset>
  50.     </div>
  51. </div> <!-- Cierra Container -->
  52. </body>
  53. </html>

Y, el otro, validar.php:
Código PHP:
Ver original
  1. <?php
  2.  
  3.     $status = "";
  4.     $error = "";
  5.     $cont_error = 0;
  6.    
  7.     $cliente    = $_POST["cliente"];
  8.     $titulo     = $_POST["title"];
  9.     $director = $_POST["director"];
  10.     $video      = $_FILES['video']['name'];
  11.    
  12.     $tamano     = $_FILES['video']['size'];
  13.     $tipo       = $_FILES['video']['type'];
  14.     $archivo    = $_FILES['video']['name'];
  15.    
  16.     //Tamaño en bytes. Este tamaño son 10mb
  17.     //20mb --> 20479940,23 bytes
  18.     //5mb  --> 5119985
  19.     $limite_tamano = 5119985;
  20.     $tipo_archivo = "video/x-flv";
  21.     $target_path = "uploads/";
  22.    
  23.    
  24.     //Comprobamos que se ha llegado a este punto a través del formulario
  25.     if ($_POST["action"] == "upload"){
  26.      
  27.       //Comprobamos que todos los campos estén informados
  28.       if ($cliente == "" || $titulo == "" || $director == "" || $archivo == "") {
  29.         $cont_error += 1;
  30.         $error .= "Error" . $cont_error . ": Por favor, rellene todos los campos<br>";
  31.       }else{
  32.         //Comprobamos que el tipo de extensión sea .FLV
  33.         if ($tipo != $tipo_archivo){
  34.                 $cont_error += 1;
  35.                 $error .= "Error" . $cont_error . ": Tipo de fichero erróneo: El fichero seleccionado es de tipo " . $tipo . "<br>";
  36.                 $error .= "Por favor, selecciona un fichero de tipo .FLV<br>";
  37.             }else{
  38.                 //Comprobamos que el tamaño del archivo no supere
  39.                 //el que hemos predefinido en $limite_tamano
  40.                 if ($tamano > $limite_tamano ){
  41.                     $cont_error += 1;
  42.                     $error .= "Error" . $cont_error . ": El fichero seleccionado es demasiado grande. Su tamaño debe ser menor de " .  $limite_tamano . "<br>";
  43.             }
  44.             else{
  45.                     //Añadimos el archivo a la ruta "uploads/nombrearchivo.extension"
  46.                         $target_path = $target_path . basename($archivo);
  47.  
  48.                         if (move_uploaded_file($_FILES['video']['tmp_name'],$target_path )){
  49.                         $status = "Archivo subido: <b>".$archivo."</b>";
  50.                             echo "<h4>ENVIO CORRECTO</h4>";
  51.                             echo "<p>Cliente: " . $cliente . "<br>";
  52.                             echo "<p>Título: " . $titulo . "<br>";
  53.                             echo "<p>Director: " . $director . "<br>";
  54.                            
  55.                             echo "<p>Destino: " . $target_path . "<br>";
  56.                             echo "Tamaño: " . $tamano . "<br>";
  57.                         echo "Tipo: " . $tipo . "<br>";
  58.                     } else {
  59.                             $status = "Error al subir archivo";
  60.                     }
  61.                         echo $status . "<br>";
  62.                        
  63.                 }
  64.             }
  65.         }
  66.         //Si existe algún error, los escribimos.
  67.         if ($error != ""){
  68.             echo "<p style=color:red>" . $error . "</p><br>";
  69.         }
  70.            
  71.     }else{
  72.         //Si se ha accedido al script sin pasar por el formulario
  73.         //nos envía al formulario
  74.         echo "<p style=color:red>Por favor, ingrese a esta página
  75.                     desde el formulario: <a href=form2.php>Formulario Uplaod</a></p><br>";
  76.     }
  77.      
  78. ?>
  79.                 </p>
  80.             </fieldset>
  81.         </div> <!-- Cierra div leftSide-->
  82.     </div> <!-- Cierra div container-->
  83. </body>
  84. </html>


Saludos.
  #10 (permalink)  
Antiguo 12/07/2011, 06:57
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 11 años, 10 meses
Puntos: 209
Respuesta: Subir Videos FLV VS. PHP.INI

bueno salgamos de duda busca sobre upload_max_filesize y max_post_size, revisa el tuyo y verifica el tamaño del archivo que estás subiendo, a lo mejor es muy grande con respecto a tu configuración

tmb revisa que te devuelve
$_FILE['video']['error']

para comprobar que te llega bien el archivo, antes de moverlo haz esto

if(!empty($_FILES['video']) && $_FILES['video']['error'] == UPLOAD_ERR_OK)
{
// aca lo mueves, etc
}
else
{
//algo fue mal
}
__________________
aconcaguaestudio.com
  #11 (permalink)  
Antiguo 12/07/2011, 07:34
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problemas al subir videos FLV

Grácias iviamontes me pondré a trabajarlo enseguida, pero antes de nada me gustaria consultarte algo:

Sobre el tema del php.ini tengo entendido que lo que tengo que hacer es:
1. Buscar el php.ini (hay 2, yo tengo php.ini-development y php.ini-production). ¿Cúal modifico?
2. Revisar lo que me has dicho.
3. Renombrar uno de estos dos archivos como php.ini.
4. (Esta parte no lo tengo tan claro aunque lo lei) Mover estos 2 archivos de sitio para colocarlos en C://windows.
5. Reiniciar el pc para actualizar las modificaciones.

Voy bien o lo tengo mal entendido?

Saludos.
  #12 (permalink)  
Antiguo 12/07/2011, 07:43
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 11 años, 10 meses
Puntos: 209
Respuesta: Problemas al subir videos FLV

1 - tienes que modifciar el que estas usando, que no creo que sea ninguno de esos, es el que se llama php.ini nada más... que servidor estas usando ???
no tienes que reiniciar la pc completa, solo el servicio del apache
__________________
aconcaguaestudio.com
  #13 (permalink)  
Antiguo 12/07/2011, 08:26
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problemas al subir videos FLV

Utilizo el servidor a nivel local que me brinda xampp.

Cómo no encontraba php.ini, cree un archivo php con el siguiente código:
Código PHP:
Ver original
  1. <?php
  2. ?>
Para que me mostrara donde se escondia dicho archivo y en el apartado Loaded Configuration File me ponia su ubicación. Busque y me aparecian solo estos 2 archivos que comento:
- php.ini-development
- php.ini-production

Creo que són estos archivos por que sale como esta configurado todo y esta lleno de ";" xDD jejeje.

Sabiendo esto, modifico el nombre y el contenido que comentabamos del tamaño o sólo el contenido que comentabamos del tamaño?

La referencia que te comento lo encontré aqui: http://www.ignside.net/man/servidores/phpini.php

Cómo lo veis?

Saludos.

Etiquetas: flv, html, formulario, 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 18:40.