hola quisiera que me ayuden a restringir el tipo de formato de los archivos que seran subidos al servidor
aqui les dejo mi avance
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="CrearProblema.php" enctype="multipart/form-data">
Nombre del problema:
<input type="text" name="nombre"> <br>
<label>Seleccione los archivos</label><br>
inserte el enunciado: <input type="file" name="archivo[]"><br>
inserte la entrada: <input type="file" name="archivo[]"><br>
inserte la salida: <input type="file" name="archivo[]"><br>
<input type="submit" value="Crear Problema">
</form>
</body>
</html>
<?php
include("cnx.php");
$cnx = pg_connect($entrada) or die ("Error de conexion. ". pg_last_error());
$mensaje ="";
$dir ="";
$seleccionar ="SELECT nombre_problema FROM problema";
$result = pg_query($seleccionar) or die('ERROR AL INSERTAR DATOS: ' . pg_last_error());
$columnas = pg_numrows($result);
for($i=1;$i<=$columnas; $i++){
$line = pg_fetch_array($result, null, PGSQL_ASSOC);
if(!strcmp($line['nombre_problema'] ,$_REQUEST['nombre'])){ // El nombre ya existe en la bd???
$mensaje="existe";
}
}
if($mensaje!="existe"){
$insertar= "INSERT INTO problema(nombre_problema) VALUES ('$_REQUEST[nombre]');";
$result = pg_query($cnx, $insertar) or die('ERROR AL INSERTAR DATOS: ' . pg_last_error());
$seleccionar="SELECT id_problema FROM problema where nombre_problema='$_REQUEST[nombre]'";
$result = pg_query($seleccionar) or die('ERROR AL INSERTAR DATOS: ' . pg_last_error());
$columnas = pg_numrows($result);
for($i=1;$i<=$columnas; $i++){
$line = pg_fetch_array($result, null, PGSQL_ASSOC);
echo $line['id_problema'];
}
echo $_REQUEST['nombre'];
$dir=$line['id_problema'];
mkdir($line['id_problema']);
}
else{
// "enviamos un mensaje a la vista, ya existe el problema"
}
moverArchivos($_FILES); //llamamos a la funcion que mueve y comprueba los archivos
function moverArchivos($archivos){ //Optimizada para multiples archivos
$directorio = "upload"; //ubicacion y nombre del directorio donde se guarda
$ubicaciones = array();
$extensiones = array("in","out"); //extensiones permitidas
if(isset($archivos["archivo"]["error"])){
foreach ($archivos["archivo"]["error"] as $key => $error) {
if ($error == 0) {
$trozo = explode(".",$archivos["archivo"]["name"][$key]); //obtenemos la extensión
$extension = strtolower(end($trozo)); //la pasamos a minuscula
if(in_array($extension, $extensiones)){
$valido = true;
}
else{
$valido = false;
}
if(isset($valido) and $valido === true){ //si el archivo es valido lo intentamos mover
$nombre_archivo = date("Ymd") . "_" . date("is"). "_img_".$trozo[0].".".$extension; //generamos un nombre personalizable
$ubicacion_original = $archivos["archivo"]["tmp_name"][$key]; //ubicacion original y temporal del archivo
if(!move_uploaded_file($ubicacion_original,"$directorio/$nombre_archivo")){
echo "No se puede mover el archivo \n";
}
else{
$ubicaciones[] = $nombre_archivo;
}
}
else{
echo "Extension de archivo no valida \n";
}
} else{
if($error != 0 and $error != 4){ //Si no subieron archivos No enviar ninguna advertencia
$mensaje_error = mensajesErrorArchivos($archivos["archivo"]["error"][$key]);
echo $mensaje_error." Intente nuevamente. \n";
die;
}
}
}
return $ubicaciones;
} //fin del existe error
else { echo "Uno de los archivos sobrepasa la capacidad establecida por el servidor";}
} // Termina la funcion moverArchivos()
pg_close($cnx);
?>
Hola bjpenn creo que te estas complicando demasiado, es mas facil hacer algo asi
foreach $_FILES as archivo{
switch archivo['type']{
case "image/jpeg"
//Es jpeg
break;
case "image/gif"
//gif
break;
}
}
Igualmente $_FILE['archivo']['type'] segun la documentación no se verifica en el servidor, solamente te devuelte el mime type que te envia el navegador. Si queres verificar el mime type en el servidor tendrias que usar la función finfo_file()