Jump to content

Subir varias fotos con PHP


Recommended Posts

Estimados,

 

Estoy haciendo un sitio para subir fotos en PHP. El punto es que tengo que subir muchas fotos, mas de 100. Cuando lo pruebo en localhost sube hasta 42 fotos, probé instalándolo en un hosting y me fue peor ya que solo sube hasta 20.

Le dejo el codigo que tengo para subir las imagenes.

<?php
	include('conecta.php');
        $nombre 	= $_POST['nombre'];
	$mail		= $_POST['mail'];

	if(isset($_FILES['upload']) === true){
    	$files = $_FILES['upload'];
		$directorio = './fotos/'.$mail;
		if (file_exists($directorio)){
			for($x = 0;$x < count($files['name']); $x++){
        		$name	= $files['name'][$x];
	            $tmp_name	= $files['tmp_name'][$x];
			
    	        move_uploaded_file($tmp_name, 'fotos/'.$mail.'/'.$name);
			}
			echo '</br>Es un agrado tenerte de vuelta '.$nombre;
		}else{
			mkdir($directorio, 0777, true);
			for($x = 0;$x < count($files['name']); $x++){
        		$name		= $files['name'][$x];
	            $tmp_name	= $files['tmp_name'][$x];
			
    	        move_uploaded_file($tmp_name, 'fotos/'.$mail.'/'.$name);
			}
		}
		
		//echo $name.'</br>';
		//echo "<img src='fotos/".$mail."/".$name."' width='10%' height='10%' /></br>";
        
    	echo "<p>Tus fotos fueron subidas con exito ".$_POST['nombre']."</p>";
		$cantidad = count($files['name']);
		echo "<p>Subiste ".$cantidad." fotos </p>";
		
    }else{
		echo "<BR/>No Subiste fotos";	
	}
?>

 

Desde ya estimados muchas gracias.

 

Saludos!

Link to comment
Share on other sites

para el tema de la cantidad que puedes subir, agrega esto en la cabecera de tu procesador de datos:

 

ini_set("upload_max_size", "100M");

ini_set("post_max_size", "1000M");

ini_set("max_execution_time", "10800");

 

ahi esta configurado para que se puedan subir archivos de 100mb, el post size, de 1gb, y tiempo de ejecucion de 108000 segs, en este caso serian 3 horas: 3*60*60 = 10800 //3 por 60 min por 60 segs.

 

ve como andas con eso....

Link to comment
Share on other sites

Hola cañangasñangas,

 

Muchas gracias por tu respuesta. Te comento que ahora mi tope son 70MB (en localhost, no he probado en hosting) y no guarda.

Estoy investigando como hacer un redimensionamiento para ver si por ahí mejora, pero no logro aumentar los 70 mb. he agregado un par de 0 a upload_max_size y post_max_size pero sin exito.

Link to comment
Share on other sites

Super sencillo.

 

el formulario debe ser de este modo

 

 

<form enctype="multipart/form-data" action="procesador_de_datos.php" method="post">
<input type="file" name="file[]" multiple /><br/>
<br/>
<input type="submit" value="Subir Archivos" name="send" />
</form>
 

 

 

y el procesador de datos:

 

 

 

<?php
ini_set("memory_limit", "1000M");
ini_set("max_execution_time", "10800");
ini_set("upload_max_filesize", "100M");
ini_set("file_uploads", "500");

$ext_perm = array("jpg", "png", "bmp", "gif", etc...);

$dir = "carpeta"; // que no termine en /

if(isset($_POST["send"])){
$i=0;
    while($_FILES["file"]["size"][$i] > 0){
    $bla = explode(".", $_FILES["file"]["name"][$i]);
    $ext = strtolower($bla[count($bla)-1]);
        if(in_array($ext, $ext_perm)){
                if(move_uploaded_file($_FILES["file"]["tmp_name"][$i], $dir."/".$_FILES["file"]["name"][$i])){
                echo "File number: ".($i+1)." uploaded"
                }
                else{
                echo "File number: ".($i+1)." not uploaded";
            }
        }
        else{
        echo "File number: ".($i+1)." is not image file";
        }
    $i++;
    }
}
else{
echo "You don't send any data";
}
?>
 

edito: movido a webmaster...

Edited by cañangasñangas
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...