Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/03/2015, 23:50
cron4l
 
Fecha de Ingreso: febrero-2015
Ubicación: Mexico
Mensajes: 46
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Subir multiples archivos y guardar ruta en una DB

Bueno mira estoy usando este codigo para subir los archivos a la carpeta y funciona bien.
PERO no se en que parte y como hacer para que me guarde la ruta en la base de datos, no se que variables declarar y donde hacer la query.

index.php
Código PHP:
<html>
<
head>
    <
meta charset="utf-8">
    <
title>Multiple uploads con php</title>
</
head>
<
body>
    <
form action="upload.php" method="post" accept-charset="utf-8" enctype="multipart/form-data">
        <
label>Archivo 1:</label><input type="file" name="userfile[]" /><br /><br />
        <
label>Archivo 2:</label><input type="file" name="userfile[]" /><br /><br />
        <
label>Archivo 3:</label><input type="file" name="userfile[]" /><br /><br />
        <
label>Archivo 4:</label><input type="file" name="userfile[]" /><br /><br />
        <
input type="submit" value="Subir imágenes" />
    </
form>
</
body>
</
html
upload.php
Código PHP:
<?php
//solo se puede acceder si es una peticion post
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    
//llamamos a la clase multiupload
    
require_once("multiupload.php");
    
//array de campos file del formulario
    
$files $_FILES['userfile']['name'];
    
//creamos una nueva instancia de la clase multiupload
    
$upload = new Multiupload();
    
//llamamos a la funcion upFiles y le pasamos el array de campos file del formulario
    
$isUpload $upload->upFiles($files);
    
}else{
    throw new 
Exception("Error Processing Request"1);
}
?>
multiupload.php
Código PHP:
<?php
class Multiupload
{

    
/**
    *sube archivos al servidor a través de un formulario
    *@access public
    *@param array $files estructura de array con todos los archivos a subir
    */
    
public function upFiles($files = array())
    {
        
//inicializamos un contador para recorrer los archivos
        
$i 0;

        
//si no existe la carpeta files la creamos
        
if(!is_dir("archivos/")) 
            
mkdir("archivos/"0777);
         
        
//recorremos los input files del formulario
        
foreach($files as $file
        {
            
//si se está subiendo algún archivo en ese indice
            
if($_FILES['userfile']['tmp_name'][$i])
            {
                
//separamos los trozos del archivo, nombre extension
                
$trozos[$i] = explode("."$_FILES["userfile"]["name"][$i]);

                
//obtenemos la extension
                
$extension[$i] = end($trozos[$i]);

                
//si la extensión es una de las permitidas
                
if($this->checkExtension($extension[$i]) === TRUE)
                {

                    
//comprobamos si el archivo existe o no, si existe renombramos 
                    //para evitar que sean eliminados
                    
$_FILES['userfile']['name'][$i] = $this->checkExists($trozos[$i]);           

                    
//comprobamos si el archivo ha subido
                    
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],"archivos/".$_FILES['userfile']['name'][$i]))
                    {
                        echo 
"subida correctamente";
                        
//aqui podemos procesar info de la bd referente a este archivo
                    

                
//si la extension no es una de las permitidas
                
}else{
                    echo 
"la extension no esta permitida";
                }
            
//si ese input file no ha sido cargado con un archivo
            
}else{
                echo 
"sin imagen";
            }
            echo 
"<br />";
            
//en cada pasada por el loop incrementamos i para acceder al siguiente archivo
            
$i++;     
        }   
    }

    
/**
    *funcion privada que devuelve true o false dependiendo de la extension
    *@access private
    *@param string 
    *@return boolean - si esta o no permitido el tipo de archivo
    */
    
private function checkExtension($extension)
    {
        
//aqui podemos añadir las extensiones que deseemos permitir
        
$extensiones = array("jpg","png","gif","pdf");
        if(
in_array(strtolower($extension), $extensiones))
        {
            return 
TRUE;
        }else{
            return 
FALSE;
        }
    }

    
/**
    *funcion que comprueba si el archivo existe, si es asi, iteramos en un loop 
    *y conseguimos un nuevo nombre para el, finalmente lo retornamos
    *@access private
    *@param array 
    *@return array - archivo con el nuevo nombre
    */
    
private function checkExists($file)
    {
        
//asignamos de nuevo el nombre al archivo
        
$archivo $file[0] . '.' end($file);
        
$i 0;
        
//mientras el archivo exista entramos
        
while(file_exists('archivos/'.$archivo))
        {
            
$i++;
            
$archivo $file[0]."(".$i.")".".".end($file);       
        }
        
//devolvemos el nuevo nombre de la imagen, si es que ha 
        //entrado alguna vez en el loop, en otro caso devolvemos el que
        //ya tenia
        
return $archivo;
    }
}
?>
AGRADECERIA MUCHO SU AYUDA.
__________________
Agradecer no cuenta nada \o/ +1

<<-----CentOS----->>