Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2015, 12:10
VolKe
 
Fecha de Ingreso: julio-2015
Ubicación: Lima
Mensajes: 23
Antigüedad: 8 años, 9 meses
Puntos: 0
Registrar multiples archivos en una tabla

Hola chicos, buscando por internet encontre la forma de subir multiples archivos a un servidor(imagenes en especial xD) que los guarda en una carpeta.

Aca el codigo

https://www.dropbox.com/s/auduh4cvbwbji9u/subir%20archivos%20a%20un%20servidor.rar?dl=0

La verdad es que es muy bueno y funciona y todo.

----------------------------------------------------------------------------------------------------

Pero yo quisiera saber si se puede registrar esos archivos en una tabla en mysql(la ruta del archivo). Buscando y buscando encontré la forma de registrar pero solo 1 archivo:

Aca esta el codigo:

-tabla-
create table imagenes(
id int not null primary key auto_increment,
nombre text not null,
email text not null,
edad int not null,
ruta text not null
)

-formulario-
<form id="formulario" action="php/subir.php" method="POST" enctype="multipart/form-data">
<label > Nombre </label><input type="text" name="nombre" required/><br>
<label> EMail </label> <input type="email" name="email" required/><br>
<label> Edad </label><input type="text" name="edad" required/><br>
label for="imagen">Imagen:</label><input type="file" name="hugo" id="imagen" /><br>
<input type="submit" name="subir" value="Subir"/>
</form>

myDBC.php (donde estan las funciones)

<?php
class myDBC{

public $mysqli=null;

public function __construct(){

include_once 'conexion.php';
$this->mysqli = new mysqli($servername, $username, $password, $dbname);

if ($this->mysqli->connect_errno){
echo "Error MySQLi: ("&nbsp. $this->mysqli->connect_errno.") " . $this->mysqli->connect_error;
exit();
}
$this->mysqli->set_charset("utf8");
}

public function subirTodo($nombre, $email, $edad, $ruta){

$q = "INSERT INTO imagenes (nombre, email, edad, ruta) VALUES ('$nombre', '$email', '$edad', '$ruta')";
$result = $this->mysqli->query($q);

if($result){ //Si resultado es true, se agregó correctamente
echo'<script type="text/javascript">
alert("Agregado Exitosamente a la BD");
window.location="http://localhost/index.php"
</script>';
}
else{ //Si hubo error al insertar, se avisa
echo'<script type="text/javascript">
alert("Chispas... Algo anda mal");
window.location="http://localhost/ndex.php"
</script>';
}

}

public function seleccionar_images(){
$q = "select ruta from imagenes";

$result = $this->mysqli->query($q);

//Array asociativo que contendrá los datos
$valores = array();

//Si no hay resultados
//Se avisa al usuario y se redirige al index de la aplicación
if( $result->num_rows == 0)
{
echo'<script type="text/javascript">
alert("Ningun registro");
</script>';
return false;
}
//En otro caso, se recibe la información y se
//se regresa un array con los datos de la consulta
else{
while($row = mysqli_fetch_assoc($result)){
//Se agrega cada valor en el array
array_push($valores, $row);
}
}
//Regresa array asociativo
return $valores;
}
}
?>

subir.php
<?php

include('myDBC.php');
//Definir Tamaño de archivo 5MB
define('LIMITE', 5000);
//Definir arreglo con extensiones permitidas usar serialize
define('ARREGLO', serialize( array('image/jpg', 'image/jpeg', 'image/gif','image/png')));

$PERMITIDOS = unserialize(ARREGLO); //Usar unserialize para obtener el arreglo

$subirInformacion = new myDBC(); //Objeto para conexión a BD

if ($_FILES["hugo"]["error"] > 0){
echo'<script type="text/javascript">
alert("Error de FILE Selecciona un Archivo");
window.location="http://localhost/index.php"
</script>';
}
else {

if (in_array($_FILES['hugo']['type'], $PERMITIDOS) && $_FILES['hugo']['size'] <= LIMITE * 1024){

//Desde subir.php a la carpeta imagenes hay que salir un directorio
//../imagenes/nombreDeArchivo
$rutaEnServidor = "../imagenes/" . $_FILES['hugo']['name'];

//Desde index.php, la carpeta imagenes está en imagenes/nombreDeArchivo
$ruta = "imagenes/" . $_FILES['hugo']['name'];

if (!file_exists($ruta)){
$resultado = move_uploaded_file($_FILES["hugo"]["tmp_name"], $rutaEnServidor);
if ($resultado){
$name = $_POST['nombre'];
$ema = $_POST['email'];
$ed = $_POST['edad'];
$subirInformacion->subirTodo($name, $ema, $ed, $ruta);

}else {
echo'<script type="text/javascript">
alert("Ocurrió un error al mover archivo");
window.location="http://localhost/index.php"
</script>';
}
}
}
}

?>

Bueno, la idea era unir la subida de 4 archivos al servidor con el registro a una tabla, osea hacer un registro de 4 imagenes con uno que otro campo más en una tabla guardando la ruta de cada archivo. La verdad es que me sale cada error jaja, Si alguien tiene tiempo libre y me pueda ayudar con este problema.

Gracias de antemano.
Saludos