Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2012, 04:11
arratete
 
Fecha de Ingreso: febrero-2012
Mensajes: 39
Antigüedad: 13 años
Puntos: 0
Upload PDF a directorio del servidor y guardar ruta en base de datos.

Estoy realizando una intranet y me gustaria que el administrador una vez seleccionado un usuario de la base de datos, subira un documento en pdf (que en este caso seria su nomina) a el directorio nominas/ del servidor y se guardara en la base de datos la ruta del archivo, para mas adelante poder hacer una funcion en el perfil d elos usuarios, que dependiendo del usuario que sean les muestre su respectiva nomina.

Hasta ahora lo que tengo hecho es la tabla nominas:

Código:
CREATE TABLE IF NOT EXISTS `nominas` (
  `id_nomina` int(10) NOT NULL AUTO_INCREMENT,
  `usuario` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
  `nombre_nomina` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
  `url` varchar(20) COLLATE utf8_spanish_ci NOT NULL,
  PRIMARY KEY (`id_nomina`),
  KEY `id_usuario` (`usuario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1 ;
El formulario para la pagina del administrador para subir el archivo, en la que mediante un <select> puede seleccionar el nombre de usuario de la tabla "usuarios" :

Código PHP:
    <div id="pagina">
        <?php 
        $query 
"SELECT usuarios.usuario FROM usuarios"
        
$result mysql_query($query) or die(mysql_error()); 
        
$rowmysql_fetch_assoc($result); 
        
$totalRows mysql_num_rows($result); 
        
?> 

      <form action="upload.php" method="post" enctype="multipart/form-data"> 
    <select name="usuario"> 
    <?php do { ?> 
    <option value="<?php echo $row['usuario']?>"><?php echo $row['usuario']?> 
     </option> 
     <?php 
        
} while ($row mysql_fetch_assoc($result)); 
          
$rows mysql_num_rows($result); 
          if(
$rows 0) { 
              
mysql_data_seek($result0); 
              
$rowmysql_fetch_assoc($$result); 
          } 
        
?> 
     </select>
        <b>Enviar un nuevo archivo: </b> 
        <br> 
        <input name="archivo" type="file" id="archivo"> 
        <br> 
        <input type="submit" value="Enviar" name="boton" id="boton"> 
        </form> 
   
</div>

Y por ultimo el php para realizar el upload:


Código PHP:
<?php
        $temp
=$_FILES['archivo']['tmp_name']; 
                   
$usuario $_POST['usuario'];  
                
$directorio "/opt/lampp/htdocs/Intranet/nominas"
                
$nombre_nomina $_FILES['archivo']['name'];  
                
$url=$directorio "/" $nombre_nomina
                if (
move_uploaded_file($temp,$url)) 
                {                      
                
$sql2 "INSERT INTO nominas (usuario, nombre_nomina, url) VALUES ('$usuario', '$nombre_nomina', '$url')";
                echo 
"El archivo se ha subido correctamente";    
                }     
                            
?>

La subida la hace correctamente, lo que no me guarda es nada en la tabla "nominas" de la base de datos. Es posible que haya mucho errores, soy nueva en esto del php y mysql y aun estoy muy verde.