[php] upload controllo dimensione immagine

luigi777

Utente Attivo
14 Feb 2008
1.066
1
38
38
Massa, Italy
Ciao, come posso applicare il controllo della dimensione pixel dell'immagine ad questo codice che vi posto:

Codice:
<?php
if(isset($_POST["submit"]))
{
$percorso = $_FILES['carica_file']['tmp_name'];

$cartella = 'upload/';

$nome = $_FILES['carica_file']['name'];

$tipo_file = $_FILES['carica_file']['type'];

if ( $tipo_file == "image/jpeg" || $tipo_file == "image/pjpeg" || $tipo_file == "image/gif" || $tipo_file == "image/png") {

if (copy($percorso, $cartella.$nome)) {



// qui eseguo altre funzioni...



} else {

echo "Si sono verificati dei problemi durante l'Upload";

}

} else {

echo "Tipo di file non riconosciuto";

}
}
?>
<div align="center">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method='POST' enctype='multipart/form-data'>
<p>Scegli  da caricare dim:  "1050x600px"</p>
<p><input type='file' name='carica_file'></p>
<p><input type='submit' name="submit" value='Carica'></p>
</form>
</div>
La dimensione che mi interessa è : 1050x600px .

come faccio controllarla?


E poi questo codice e un pezzo di codice che poi dovrei metterlo nel mio sito.

vi ringrazio molto.

buona giornata.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, puoi provare con la funzione getimagesize()
usa il var_dump() per vedere cosa ti restituisce e come usarlo
PHP:
<?php
$info = getimagesize($percorso);
var_dump($info);
?>
 
Ultima modifica:

luigi777

Utente Attivo
14 Feb 2008
1.066
1
38
38
Massa, Italy
e come lo aggancio al mio??

a me mi serve solo per immagini png non interlacciate e risoluzione 300 dpi..

grazie mille per l'aiuto e buona serata.
 

luigi777

Utente Attivo
14 Feb 2008
1.066
1
38
38
Massa, Italy
mi salta fuori:
array(6) { [0]=> int(1050) [1]=> int(600) [2]=> int(3) [3]=> string(25) "width="1050" height="600"" ["bits"]=> int(8) ["mime"]=> string(9) "image/png" }
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
è un array. nel primo argomento hai la larghezza e nel secondo l'altezza
non volevi recuperare questi 2 valori?
PHP:
<?php
$info = getimagesize($percorso);
$larghezza = $info[0];
$altezza = $info[1];
?>
 

luigi777

Utente Attivo
14 Feb 2008
1.066
1
38
38
Massa, Italy
ho fatto ma non va , forse ho sbagliato l'if vedi:
mi da cosi : Undefined variable on line 16
Dimensione non valida
PHP:
<?php
if(isset($_POST["submit"]))
{
$percorso = $_FILES['carica_file']['tmp_name'];

$cartella = 'upload/';

$nome = $_FILES['carica_file']['name'];

$tipo_file = $_FILES['carica_file']['type'];

if ($tipo_file == "image/png") {

$info = getimagesize($percorso);

if($larghezza == $info[0] and $altezza ==$info[1]) // qui l'errore.
{

		if (copy($percorso, $cartella.$nome)) {
		
		// qui altre cose

		} else {

		echo "Si sono verificati dei problemi durante l'Upload";

		}
}else
{
	echo "Dimensione non valida";
}


} else {

echo "Tipo di file non riconosciuto";

}
}
?>
<div align="center">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method='POST' enctype='multipart/form-data'>
<p>Scegli  da caricare dim:  "1050x600px"</p>
<p><input type='file' name='carica_file'></p>
<p><input type='submit' name="submit" value='Carica'></p>
</form>
</div>
 

luigi777

Utente Attivo
14 Feb 2008
1.066
1
38
38
Massa, Italy
ok risolto . dimmi se era cosi:

PHP:
<?php
if(isset($_POST["submit"]))
{
$percorso = $_FILES['carica_file']['tmp_name'];

$cartella = 'upload/';

$nome = $_FILES['carica_file']['name'];

$tipo_file = $_FILES['carica_file']['type'];

if ($tipo_file == "image/png") {

$info = getimagesize($percorso);

$larghezza = 1050;
$altezza = 600;

if($info[0] == $larghezza and $info[1] == $altezza)
{

		if (copy($percorso, $cartella.$nome)) {
		
		// qui altre cose
		echo $nome; 
		echo "uplodato";

		} else {

		echo "Si sono verificati dei problemi durante l'Upload";

		}
}else
{
	echo "Dimensione non valida";
}


} else {

echo "Tipo di file non riconosciuto";

}
}
?>
<div align="center">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method='POST' enctype='multipart/form-data'>
<p>Scegli  da caricare dim:  "1050x600px"</p>
<p><input type='file' name='carica_file'></p>
<p><input type='submit' name="submit" value='Carica'></p>
</form>
</div>
grazie mille.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Si, perfetto
se le misure son sempre quelle puoi fare anche cosi
PHP:
if($info[0] == 1050 and $info[1] == 600)
{
e risparmi 2 righe di codice :fonzie: