PHP - Poner limite de tamaño a la imagen subida por un usuario

 
Vista:
Imágen de perfil de Antonio
Val: 66
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Poner limite de tamaño a la imagen subida por un usuario

Publicado por Antonio (39 intervenciones) el 11/11/2016 17:21:52
Hola, buenas tardes. Vengo con otro problema sobre la plataforma que ando modificando.
Lo que sucede ahora es que al momento de que un usuario ingresa su imagen de comprobante aquí: http://semana.mat.uson.mx/registro/unison/ el límite que hemos puesto es de 2 MB, o se supone que ese debería serlo. Si la imagen supera dicho tamaño se manda un mensaje indicando que es demasiado grande pero aquí viene el problema, a pesar de enviar ese mensaje la imagen si se guarda en la base de datos lo que puede ocasionarnos problemas después.

Mi pregunta: Cómo hacer para que obligatoriamente sea 2 MB el tamaño máximo y que si supera ese tamaño no se almacene en la BD???


Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Refresh" content="10;url=./">
    </head>
    <body>
        <?php
            $target_dir = "archivos/";
            $uploadOk = 1;
            $imageFileType = pathinfo($_FILES["fileToUpload"]["name"],PATHINFO_EXTENSION);
 
            // Check if image file is a actual image or fake image
            if(isset($_POST["submit"])) {
                $folio=$_POST["folio"];
                include 'conexion.php';
                $tabla=$mysqli->query("select folio from asistente where folio='".$folio."'");
 
                if ($tabla->num_rows > 0) {
                    $target_file = $target_dir.$folio.".".$imageFileType;
                    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
                    if($check !== false) {
                        //echo "File is an image - " . $check["mime"] . ".";
                        $uploadOk = 1;
                    } else {
                        echo "<br>Lo sentimos, el archivo enviado no es una imagen.<br>
                            Favor de crear comprobante en una imagen y enviarlo despu&eacute;s.<br>";
                        $uploadOk = 0;
                    }
 
                    // Check if file already exists
                    if (file_exists(basename(substr($target_file,0,-4)))) {
                        echo "<br>Lo sentimos, el archivo ya ha sido enviado.<br>";
                        $uploadOk = 0;
                    }
                    // Check file size
 
                    if ($_FILES["fileToUpload"]["size"] > 2097152) {
                        header("Location: index.php?error=2");
                        //echo "Sorry, your file is too large.";
                    }
                    // Allow certain file formats
                    /*if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
                    && $imageFileType != "gif" ) {
                        echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
                        $uploadOk = 0;
                    }*/
                    // Check if $uploadOk is set to 0 by an error
                    if ($uploadOk == 0) {
                        echo "<br>Tu archivo NO ha sido almacenado. Favor de intentar
                            despu&eacute;s. <br>";
                    // if everything is ok, try to upload file
                    } else {
                        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
                            //echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
                            //echo basename($target_file)."<br>";
                            //echo basename(substr($target_file,0,-4).".*");
                            $target_file=$mysqli->real_escape_string($target_file);
                            $tabla=$mysqli->query("update asistente set rutaImagenPago='".$target_file."' where folio='".$folio."'");
                            echo "<br>Gracias por enviar tu comprobante <br>";
 
                        } else {
                            echo "<br>Lo sentimos, ocurrio un error al guardar el archivo<br>";
                        }
                    }
                }
            }
            echo "<br>El sitio te lleva a la p&aacute;gina principal en 10 segundos.
                <br>Si no te redirige, puedes <a href=\"./\">hacer click aqu&iacute;</a>";
        ?>
    </body>
</html>

Saludos !!
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
sin imagen de perfil

Poner limite de tamaño a la imagen subida por un usuario

Publicado por Debugsito (18 intervenciones) el 11/11/2016 18:54:13
Hola, prueba con esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Refresh" content="10;url=./">
</head>
<body>
$target_dir = "archivos/";
$uploadOk = 1;
$imageFileType = pathinfo($_FILES["fileToUpload"]["name"],PATHINFO_EXTENSION);
 
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $folio=$_POST["folio"];
    include 'conexion.php';
    $tabla=$mysqli->query("select folio from asistente where folio='".$folio."'");
 
    if ($tabla->num_rows > 0) {
        $target_file = $target_dir.$folio.".".$imageFileType;
        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
 
        if ($_FILES["fileToUpload"]["size"] > 2048000){
            echo "tu imagen es mayor a 2mb";
            $uploadOk = 0;
        }else{
            if($check !== false) {
                //echo "File is an image - " . $check["mime"] . ".";
                $uploadOk = 1;
            } else {
                echo "<br>Lo sentimos, el archivo enviado no es una imagen.<br>
                            Favor de crear comprobante en una imagen y enviarlo despu&eacute;s.<br>";
                $uploadOk = 0;
            }
        }
 
        // Check if file already exists
        if (file_exists(basename(substr($target_file,0,-4)))) {
            echo "<br>Lo sentimos, el archivo ya ha sido enviado.<br>";
            $uploadOk = 0;
        }
        // Check file size
 
        if ($_FILES["fileToUpload"]["size"] > 2097152) {
            header("Location: index.php?error=2");
            //echo "Sorry, your file is too large.";
        }
        // Allow certain file formats
        /*if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
        && $imageFileType != "gif" ) {
            echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
            $uploadOk = 0;
        }*/
        // Check if $uploadOk is set to 0 by an error
        if ($uploadOk == 0) {
            echo "<br>Tu archivo NO ha sido almacenado. Favor de intentar
                            despu&eacute;s. <br>";
            // if everything is ok, try to upload file
        } else {
            if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
                //echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
                //echo basename($target_file)."<br>";
                //echo basename(substr($target_file,0,-4).".*");
                $target_file=$mysqli->real_escape_string($target_file);
                $tabla=$mysqli->query("update asistente set rutaImagenPago='".$target_file."' where folio='".$folio."'");
                echo "<br>Gracias por enviar tu comprobante <br>";
 
            } else {
                echo "<br>Lo sentimos, ocurrio un error al guardar el archivo<br>";
            }
        }
    }
}
echo "<br>El sitio te lleva a la p&aacute;gina principal en 10 segundos.
                <br>Si no te redirige, puedes <a href=\"./\">hacer click aqu&iacute;</a>";
?>
</body>
</html>
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 Antonio
Val: 66
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Poner limite de tamaño a la imagen subida por un usuario

Publicado por Antonio (39 intervenciones) el 12/11/2016 07:19:19
Hola, cuál era el problema??
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