Foros del Web » Programando para Internet » PHP »

Subir archivos Mp3 via form

Estas en el tema de Subir archivos Mp3 via form en el foro de PHP en Foros del Web. Hola amigos: Tengo un pequeño problema, estoy intentando subir un fichero de audio pequeño en MP3 (no mas de 200k) por medio de un form ...
  #1 (permalink)  
Antiguo 22/09/2005, 05:34
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 14 años, 8 meses
Puntos: 1
Subir archivos Mp3 via form

Hola amigos:

Tengo un pequeño problema, estoy intentando subir un fichero de audio pequeño en MP3 (no mas de 200k) por medio de un form que pilla un foto y el sonido.

El codigo es el mismo pero la foto se sube bien y el fichero mp3 no, no se si es una cuestion del campo del form que lo busca (tipo file) o que no es capaz de subir.

Os muestro el codigo

Código PHP:
     //miramos que exista fichero
            
if ($_FILES['foto']['name'] != "")
                {
            
//miramos extension y guardamos en $ruta_fotos (conf.php) 
            
$ext substr ($_FILES['foto']['name'], -3);
            
            if (
is_uploaded_file($_FILES['foto']['tmp_name'])) 
            {
          for (
$i=0;$i<3;$i++)
                    {     
                     
srand((double)microtime()*1000000);
                     
$randval rand(10000000,99999999);
                     
$nombre.=$randval;
                    }
                                                                                                                   
                
$filename $nombre.".".$ext;
                
copy($_FILES['foto']['tmp_name'], $rutaadmin.$filename);
                
//permisos adecuados (rw-r--r--)
                            
chmod$rutaadmin.$filename0644 );
                
                    
$imagen=$rutaadmin.$filename;
                    
thumbjpeg($imagen125);
            } 
            else 
            {
              echo 
"Fallo al subir el fichero:".$_FILES['foto']['name'];
                
$filename "0"//fichero q no se pudo subir
            
}
        }
        else
        {
            
$filename"0"//no hay fichero
        
}
             
             
            
//miramos que exista fichero de sonido
            
if ($_FILES['sonido']['name'] != "")
                {
            
//miramos extension y guardamos en $ruta_fotos (conf.php) 
            
$ext substr ($_FILES['sonido']['name'], -3);
            
            if (
is_uploaded_file($_FILES['sonido']['tmp_name'])) 
            {
          for (
$i=0;$i<3;$i++)
                    {     
                     
srand((double)microtime()*1000000);
                     
$randval rand(10000000,99999999);
                     
$nombre.=$randval;
                    }
                                                                                                                   
                
$soundname $nombre.".".$ext;
                
copy($_FILES['sonido']['tmp_name'], $rutasound.$soundname);
                
//permisos adecuados (rw-r--r--)
                            
chmod$rutasound.$soundname0644 );
                
                    
            } 
            else 
            {
              echo 
"Fallo al subir el fichero:".$_FILES['sonido']['name'];
                
$soundname "0"//fichero q no se pudo subir
            
}
        }
        else
        {
            
$soundname"0"//no hay fichero
        

         
         
//guardamos todo en la base de datos
         
         
                 
$cuerpo nl2br($cuerpo);
                if (
$filename!= "0")
                
$cuerpo "<img src=\"".$rutaindex.$filename."\" align=left>".$cuerpo;
                
$fecha date("Y-m-d");
                 
                
                
$args="'','$titulo','$cabecera','$cuerpo','$filename','$publicado','$soundname','$fecha'";
                
$error $db -> db_Insert("noticia"$args); 
y este es el codigo del formulario

Código PHP:
 echo "<form enctype=\"multipart/form-data\" action=\"operacion.php?operacion=insertarnoticias\" method=\"post\">\n";
   echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"50000\">\n";     
     echo 
"<tr>\n"
     echo 
"<td>Titulo:</td><td><input type=text name=titulo maxlength=255></td></tr>\n";
     echo 
"<tr>\n"
     echo 
"<td>Cabecera:</td><td><input type=text name=cabecera maxlength=255></td></tr>\n";
     echo 
"<tr>\n";
      echo 
"<td>Cuerpo:</td><td><textarea rows=\"10\" cols=\"40\" name=cuerpo></textarea></td></tr>\n";
      echo 
"<td>Publicacion de la noticia:</td><td><select name=\"publicado\">\n";
     echo 
"<option value=\"1\" selected>Si</option>\n";
     echo 
"<option value=\"0\">No</option>\n";
     echo 
"</select> </td></tr>\n";
     echo 
"<tr>\n";
   echo 
"<td>Foto:</td><td><input type=file name=foto maxlength=255></td></tr>\n";
     echo 
"<tr><td></td><td><b>La imagen solo puede tener Formato JPG o JPEG y para su correcta visualizacion se recomienda un tamaño de 150x113</b></td></tr>\n";
     echo 
"<tr>\n";
   echo 
"<td>Sonido:</td><td><input type=file name=sonido maxlength=255></td></tr>\n";
     echo 
"<tr>\n";
   echo 
"<td><input TYPE=\"button\" VALUE=\"Enviar\" onClick=\"Validar(this.form)\"></td><td> <input type=reset value=Borrar></td></tr>\n";
     echo 
"</form></table>\n"

Los permisos de las carpetas están bien, y no encuentro la solucion



Muchas gracias
  #2 (permalink)  
Antiguo 22/09/2005, 07:18
 
Fecha de Ingreso: febrero-2005
Ubicación: Tamaulipas - México
Mensajes: 328
Antigüedad: 12 años, 10 meses
Puntos: 0
<input type=file name=foto maxlength=255> quita maxleght
alrato lo reviso mejor que tengo que salir
__________________
Facebook Like
  #3 (permalink)  
Antiguo 22/09/2005, 07:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes una directiva que restringe el tamaño máximo de tus archivos:

Código PHP:
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"50000\">\n"
el N° que ahí indicas son Bytes .. si dices que estás subiendo un archivo de 200 Kbytes .. eso son: 204.800 bytes .. y tu lo limitas a: 50.000 bytes

Revisalo ..

Tambien tienes otros límites que PHP y tu servidor HTTP imponen. Revisa las FAQ's del foro PHP.

Observaciones:
Código PHP:
//miramos extension y guardamos en $ruta_fotos (conf.php) 
            
$ext substr ($_FILES['sonido']['name'], -3); 
Este tipo de validaciones no deberías hacerlo así (confias demasiado en que tu nombre de archivo tenga ese formato: nombre.ext ...). Por tu seguridad .. usa el identificador de formato MIME del archivo .. el cual lo tienes en la variable $_FILES['xxxx']['type'] .. con eso validarás más fielmente que tipo de archivo está realmente subiendo.

Código PHP:
echo "<form enctype=\"multipart/form-data\" action=\"operacion.php?operacion=insertarnoticias\" method=\"post\">\n"
   echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"50000\">\n";     
     echo 
"<tr>\n"
     echo 
"<td>Titulo:</td><td><input type=text name=titulo maxlength=255></td></tr>\n"
     echo 
"<tr>\n"
     echo 
"<td>Cabecera:</td><td><input type=text name=cabecera maxlength=255></td></tr>\n"
     echo 
"<tr>\n"
     echo 
"<td>Cuerpo:</td><td><textarea rows=\"10\" cols=\"40\" name=cuerpo></textarea></td></tr>\n"
     echo 
"<td>Publicacion de la noticia:</td><td><select name=\"publicado\">\n"
     echo 
"<option value=\"1\" selected>Si</option>\n"
     echo 
"<option value=\"0\">No</option>\n"
     echo 
"</select> </td></tr>\n"
     echo 
"<tr>\n"
   echo 
"<td>Foto:</td><td><input type=file name=foto maxlength=255></td></tr>\n"
     echo 
"<tr><td></td><td><b>La imagen solo puede tener Formato JPG o JPEG y para su correcta visualizacion se recomienda un tamaño de 150x113</b></td></tr>\n"
     echo 
"<tr>\n"
   echo 
"<td>Sonido:</td><td><input type=file name=sonido maxlength=255></td></tr>\n"
     echo 
"<tr>\n"
   echo 
"<td><input TYPE=\"button\" VALUE=\"Enviar\" onClick=\"Validar(this.form)\"></td><td> <input type=reset value=Borrar></td></tr>\n"
     echo 
"</form></table>\n"
No te lies con tanto "echo" .. simplemente usa HTML tal cual "rompiendo" PHP donde no lo uses y abriendolo donde lo uses con sus tag's: <? y ?>.

Por lo demás .. respeta el HTML como es .. si un tag usa comillas USALOS!

Código PHP:
?>
<form enctype="multipart/form-data" action="operacion.php?operacion=insertarnoticias\" method="post">
etc HTML
</form> 
<?
De esta forma .. si usas un editor de código cualquiera "HTML" veras el código perfectamente (tanto en vista previa como a código).

Un saludo,
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 13:50.