Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2012, 08:59
StevenLlaja
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 13 años, 5 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