Foros del Web » Programando para Internet » PHP »

Subir canciones mp3 PHP MySql

Estas en el tema de Subir canciones mp3 PHP MySql en el foro de PHP en Foros del Web. Saludos. Estoy haciendo la subida de música en formato mp3 para mi web. Este es mi formulario: Código HTML: <form method= "post" action= "insertar_bandas.php" enctype= ...
  #1 (permalink)  
Antiguo 08/03/2012, 08:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Subir canciones mp3 PHP MySql

Saludos. Estoy haciendo la subida de música en formato mp3 para mi web.

Este es mi formulario:

Código HTML:
<form method="post" action="insertar_bandas.php" enctype="multipart/form-data">
         <h2>Registro de bandas:</h2><hr>
         <p> <h3>Sobre la banda</h3> </p>
         Nombre: &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;
           <label>
             <input name="txtname" type="text" class="input_insertar"/>
           </label>
           <br />
           Año de inicio :    
           <label>
             <input name="txtano" type="text" class="input_insertar"/>
           </label>
        <br />
           Género:      &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 
             <label>
               <input name="txtgen" type="text" class="input_insertar" />
             </label>
           <br />
           Logo:  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;  
             <label>
               <input name="ima" type="file" class="input_insertar" id="ima" style="-moz-border-radius: 4px;" />
             </label>
        
           <br />
           Breve historia:        
             <label>
               <textarea name="txtarea" cols="45" rows="5" class="textarea_insertar" id="textarea" maxlenght=255></textarea>
             </label>
           <br />
        
         <hr />
          Cancion nro 1:  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
              <input name="can[]" type="file" class="input_insertar" id="can" style="-moz-border-radius: 4px;" /><br />
              Letra de canci&oacute;n: &nbsp;&nbsp; &nbsp;  
              <label>
             <input name="titulo[]" type="text" class="input_insertar"/>
           </label>

          <br />
            Cancion nro 2:  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 
              <input name="can[]" type="file" class="input_insertar" id="can" style="-moz-border-radius: 4px;" /><br />
             Letra de canci&oacute;n: &nbsp;&nbsp;&nbsp;&nbsp;  
             <label>
             <input name="titulo[]" type="text" class="input_insertar"/>
           </label>
              <br />
            Cancion nro 3:  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 
              <input name="can[]" type="file" class="input_insertar" id="can" style="-moz-border-radius: 4px;" /><br />
               Letra de canci&oacute;n: &nbsp;&nbsp; &nbsp;  
               <label>
             <input name="titulo[]" type="text" class="input_insertar"/>
           </label>
              <br />
          
          <hr />
          <h3>Nombre de integrantes:</h3>
          <p>*Máximo 3 integrantes</p>
             <p><label>
                   <input  type="text" name="txt1"class="input_insertar" />
                 </label>
               <br /><label>
                 <input type="text" name="txt2" class="input_insertar"  />
               </label>
               <br /><label>
                 <input type="text" name="txt3"  class="input_insertar"  />
               </label>
               <br /><label>
                 <input type="text" name="txt4" class="input_insertar"   />
               </label>
               <br /><label>
                 <input type="text" name="txt5"  class="input_insertar"  />
               </label>
</p>
             <p><hr />
             <br />
             <input name="insetar" type="submit" class="btn_registrar_cancelar" value="Registrar banda"  />
             <input name="cancelar" type="reset" class="btn_registrar_cancelar" value="Cancelar registro" />
                              <br>
             </p>
         </form> 
Lo que hago se poner un nombre, año de inicio, genero, logo e integrantes de X banda, al momento de querer subir las canciones con cada título que yo le agregue es el problema, ya que todo se guarda correctamente en la bd, pero las canciones mp3 no se se llegan a guardar, menos en la carpeta indicada.


Esta es la parte del código:
Código PHP:
 <?php
            
//Las variables de los file field
$mp3=$_FILES['can']['name'];
$temporalx=$_POST['can']['temp'];
$tamanox=$_FILES['can']['size'];
$tipox=$_FILES['can']['type'];    
//Titulo de cada canción
$title=$_POST['titulo'];       
        

//for para subir cada canción con su propio título
    
for($i 0$i<count($fotox); $i++) {
        
           
copy($temporalx,'../canciones/'.$mp3);
        
$sqlserv=("INSERT INTO mp3 VALUES (NULL,'$title[$i]','$mp3[$i]','$foto',(SELECT MAX(idbanda) from bandas))");
   
       
// exit ("<h2>$sqlserv</h2>");
        
mysql_query($sqlserv) or exit(mysql_error());
        
?><script language="javascript">
                       alert("Registrado satisfactoriamente")
                       location.href="../librerias/registrar_bandas.php";
                       </script>
       <?php }
Y el error que me manda es:
copy() expects parameter 1 to be string, array given in J:\xampplite\htdocs\ATAQUEALIMA\librerias\insertar _bandas.php on line 78


¿Que está mal en mi código? Espero puedan ayudarme. Salud.


Editado:
He intentado hacerlo de la siguiente forma, con dos foreach, y me registras las canciones, ahora el problema es que se registra por 2 la ruta de cada canción:

Código PHP:
<?php
foreach ($_FILES['can']['error'] as $key => $error) {
foreach(
$title as $titulo)
{
    
if (
$error == UPLOAD_ERR_OK) { //se ha subido bien
//Cojemos los nombres del fichero
$nombre_fichero=$_FILES['can']['name'][$key];
$nombre_temporal_que_le_ha_dado_php=$_FILES['can']['tmp_name'][$key];
//lo movemos donde queramos
move_uploaded_file($nombre_temporal_que_le_ha_dado_php,"../canciones/".$nombre_fichero);
//es aconsejable ponerle permisos

$qry2="INSERT INTO mp3 VALUES (NULL,'$titulo','$nombre_fichero','$foto',(SELECT MAX(idbanda) from bandas))";
$res=mysql_query($qry2,$conexion);

?>
                       <script language="javascript">
                       alert("Las canciones se registraron correctamente")
                       location.href="../librerias/registrar_bandas.php";
                       </script>
                       <?php

    
}
  


 else{
     echo 
$_FILES["can"]["name"][$key]." se subi&oacute; mal";
     }
     }
}

Última edición por StevenLlaja; 08/03/2012 a las 13:59
  #2 (permalink)  
Antiguo 09/03/2012, 01:19
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Subir canciones mp3 PHP MySql

copy() expects parameter 1 to be string, array given in J:\xampplite\htdocs\ATAQUEALIMA\librerias\insertar _bandas.php on line 78
Copy requiere que el primer parámetro sea un string y le estás pasando un array.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 09/03/2012, 09:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Subir canciones mp3 PHP MySql

Pero cúal podría ser la solución a esto?
  #4 (permalink)  
Antiguo 09/03/2012, 10:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir canciones mp3 PHP MySql

Pues ya te dijo repara2, debes de pasarle la cadena a copy() no le puedes pasar un arreglo, tiene que ser la cadena con el path al archivo original que quieres copiar.

Saludos.

Etiquetas: file, mp3, musica, mysql
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 01:51.