Foros del Web » Programando para Internet » PHP »

Registrar multiples archivos en una tabla

Estas en el tema de Registrar multiples archivos en una tabla en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/11/2015, 12:10
 
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

Etiquetas: formulario, multiples, mysql, registro, select, sql, tabla
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 11:36.