PHP - files para varios ficheros a la vez

   
Vista:

files para varios ficheros a la vez

Publicado por Elisa (71 intervenciones) el 06/06/2014 15:00:18
Buenas tardes. Me gustaría saber si hay alguna forma de que el botón de examinar 'files' , en vez de seleccionar ficheros uno por uno, me seleccione todos los ficheros que hay en una carpeta a la vez.

Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Salvador

files para varios ficheros a la vez

Publicado por Salvador (125 intervenciones) el 06/06/2014 16:38:47
En tu input ponlo asi

<input type="file" name="files[]" multiple="multiple">

y lo subes

1
2
3
4
5
6
foreach ($_FILES["files"]["error"] as $key => $error) {
	if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["files"]["tmp_name"][$key];
            $name = $_FILES["files"]["name"][$key];
            move_uploaded_file($tmp_name, "directorio_de_subida/$name");
        }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

files para varios ficheros a la vez

Publicado por Elisa (71 intervenciones) el 10/06/2014 08:42:15
Buenos días y antes de nada, muchas gracias por la información. Estoy utilizando lo que me has comentado y me surge algún problema...

En primer lugar; lo que sigue en el html a files son dos corchetes?porque tengo una comprobación de formato en mi código php y si pongo esos corchetes, me invalida la extensión de los archivos que subo.

Además yo uso la función copy en vez de move_uploaded_file para no tener limitación de tamaño en los archivos que selecciono.

Es necesario poner siempre un foreach cuando se usa multiple files?Porque mi código es este y no me funciona...

1
2
3
4
5
6
7
8
$formatos = array('.ppt', '.pdf', '.gif', '.mpg', '.jpg', '.png', '.doc', '.xlsx');
$nombreDirectorio = "C:/raspberries/".$fila["Dispositivos"]."/contenido". $sigcarpeta . "/";
$nombreFichero = $_FILES['cliente']['name'];
$nombreCompleto = $nombreDirectorio . $nombreFichero;
$ext = substr($nombreFichero, strrpos($nombreFichero, '.'));
if(in_array($ext, $formatos)){
     if ((is_uploaded_file($_FILES['cliente']['tmp_name']))||(!file_exists(['cliente']['tmp_name']))){
          copy($_FILES['cliente']['tmp_name'], $nombreCompleto);

me deja seleccionar varios ficheros, pero solo copia uno en la carpeta.
He probado a poner tu código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if(in_array($ext, $formatos)){
	foreach ($_FILES['cliente']['error'] as $key => $error) {
	if ($error == UPLOAD_ERR_OK) {
		$tmp_name = $_FILES['files']['tmp_name'][$key];
		$name = $_FILES['files']['name'][$key];
		copy($_FILES['cliente']['tmp_name'], $nombreCompleto);
		echo "Fichero insertado.<br>";
		echo '<a href = "index.php">Insertar nuevo contenido<br></a>';
		echo '<a href = "menu.html">No deseo insertar más contenido.<br></a>';
	}else{
		echo "No se ha podido subir el fichero.<br>";
		echo '<a href = "index.php">Insertar nuevo contenido.<br></a>';
	}
	}
}else{
	echo "Archivo con extensión no permitida.<br>";
	echo '<a href = "index.php">Insertar nuevo contenido.<br></a>';
}

y me dice: Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\Trabajo\insertar_contenido1.php on line 69

Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

files para varios ficheros a la vez

Publicado por xve (5518 intervenciones) el 06/06/2014 17:50:56
Es exactamente como te ha indicado Salvador, pero tienes que seleccionar tu los archivos uno a uno con la tecla CTRL... no hay manera de que seleccione una carpeta automáticamente por temas de seguridad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

files para varios ficheros a la vez

Publicado por Elisa (71 intervenciones) el 10/06/2014 09:06:14
Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar