elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  subir multiples archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: subir multiples archivos  (Leído 1,436 veces)
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
subir multiples archivos
« en: 11 Octubre 2013, 00:06 am »

hola quisiera que me ayuden a restringir el tipo de formato de los archivos que seran subidos al servidor

aqui les dejo mi avance
Código:
<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: &nbsp; &nbsp;                   <input type="file" name="archivo[]"><br>
            inserte la salida:  &nbsp; &nbsp;&nbsp; &nbsp;      <input type="file" name="archivo[]"><br>

            <input type="submit" value="Crear Problema">
                       
        </form>
    </body>
</html>



Código:
<?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);
   

?>



En línea

miloscorp

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: subir multiples archivos
« Respuesta #1 en: 17 Octubre 2013, 17:49 pm »

Hola bjpenn creo que te estas complicando demasiado, es mas facil hacer algo asi

Código:
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()


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Subir multiples archivos de una vez.
PHP
newinl 4 8,447 Último mensaje 7 Enero 2008, 21:33 pm
por newinl
Transferir multiples archivos
PHP
hello 9 4,555 Último mensaje 4 Septiembre 2009, 04:59 am
por turion
multiples archivos con fstream (AYUDA)
Programación C/C++
bash 0 1,640 Último mensaje 3 Julio 2012, 20:44 pm
por bash
escritura de multiples archivos en python
Scripting
eolh652 3 2,640 Último mensaje 4 Octubre 2013, 14:06 pm
por Softrix18
Modificar valores Hex en múltiples archivos
Ingeniería Inversa
Misomeister 2 3,765 Último mensaje 29 Mayo 2017, 18:52 pm
por animanegra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines