upload con resize in php

bacus

Nuovo Utente
12 Mag 2009
2
0
0
roma
www.freestylepark.it
Salve a tutti ho un problema con questo scritp in php:incazz:. Premetto che ho paca conoscenza del linguaggio php:book: Io vorrei integrare altri controlli l’interno tipo:
Controllo del nome dell’immagine inserita nella cartella dove faccio upload per impedire che il file viene soprascritto
Altra cosa controllare che l’immagine non sia inferiore di queste dimensioni (600*800)
Io ho trovato questo pezzo di codice che controlla le dimensioni ma non riesco ad integralo
}
// Ottengo le informazioni sull'immagine
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
// Controllo che le dimensioni (in pixel) non superino 600x800
if (($width > 600) || ($height > 800)) {
$msg = "<p>Dimensioni non corrette</p>";
break;
}

Io lo provato a modificare cosi ma non funziona
}
// Ottengo le informazioni sull'immagine
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
// Controllo che le dimensioni (in pixel) non superino 600x800
if (($width > 600) || ($height > 800))
{
die(' Dimensioni non corrette');
}

Questo e tutto il codice che mi funziona perfettamente
Grazie della vostra collaborazione:beer:

<?
//percorsi cartelle per il caricamento dei files
$cartella_thumbs = "./thumbs";
$cartella_upload = "./uploads/";
//la larghezza delle miniature, in pixel
$img_thumb_width = 100;
//visualizza il modulo di caricamento file
if(!$_POST['submit'])
{
?>
<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="8000000" />
Seleziona file:
<input type="file" name="data" />
<input type="submit" name="submit" value="Carica file" />
</form>
<?
}
else
{
//verifica le dimensioni del file caricato
if($_FILES['data']['size'] ==0)
{
die('Errore : campo upload nullo');
}
$file_permessi = array("image/gif","image/pjpeg","image/jpeg","image/x-png", "image/png");
if(!in_array($_FILES['data']['type'], $file_permessi))
{
die('Estensione non consentita');
}
///////////////////////
//crea la thumbsnail///
//////////////////////
$ThumbWidth = $img_thumb_width;
//crea la nuova immagine
if($_FILES['data']['size']){
if($_FILES['data']['type'] == "image/pjpeg" || $_FILES['data']['type'] == "image/jpeg"){
$new_img = imagecreatefromjpeg($_FILES['data']['tmp_name']);
}elseif($_FILES['data']['type'] == "image/x-png" || $_FILES['data']['type'] == "image/png"){
$new_img = imagecreatefrompng($_FILES['data']['tmp_name']);
}elseif($_FILES['data']['type'] == "image/gif"){
$new_img = imagecreatefromgif($_FILES['data']['tmp_name']);
}
//ottiene larghezza e altezza dell'immagine originale.
list($width, $height) = getimagesize($_FILES['data']['tmp_name']);
//calcola le proporzioni e ottiene dimensioni thumbsnail
$imgratio=$width/$height;
if ($imgratio>1){
$newwidth = $ThumbWidth;
$newheight = $ThumbWidth/$imgratio;
}else{
$newheight = $ThumbWidth;
$newwidth = $ThumbWidth*$imgratio;
}
//funzione per ridimensionare l'immagine.
if (function_exists(imagecreatetruecolor)){
$resized_img = imagecreatetruecolor($newwidth,$newheight);
}else{
die("Errore: Assicurati che sul tuo server siano installate le GD library");
}
//ridimensionamento
if($_FILES['data']['type'] == "image/x-png" || $_FILES['data']['type'] == "image/png"){
imagealphablending($resized_img, false);
}
imagecopyresized($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//salva l'immagine
$nome_file = strtolower($_FILES['data']['name']);
if($_FILES['data']['type'] == "image/pjpeg" || $_FILES['data']['type'] == "image/jpeg"){
imagejpeg ($resized_img,"$cartella_thumbs/$nome_file");
}
elseif($_FILES['data']['type'] == "image/x-png" || $_FILES['data']['type'] == "image/png"){
imagesavealpha($resized_img, true);
imagepng ($resized_img,"$cartella_thumbs/$nome_file");
}
elseif($_FILES['data']['type'] == "image/gif"){
imagegif($resized_img,"$cartella_thumbs/$nome_file");
}
ImageDestroy ($resized_img);
ImageDestroy ($new_img);
}
if(!is_uploaded_file($_FILES['data']['tmp_name']))
{die('Erroe nel caricamento');
}
move_uploaded_file($_FILES['data']['tmp_name'],$cartella_upload .$nome_file)
or die('Non posso caricare il file');
echo "file caricato con successo<br />";
echo "Antemprima: <img src=\"$cartella_thumbs/$nome_file\" />";
}
?>
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
provato con:
PHP:
///etc. etc.
{
die('Estensione non consentita');
}
// Ottengo le informazioni sull'immagine
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
// Controllo che le dimensioni (in pixel) non superino 600x800
if (($width > 600) || ($height > 800)) 
{
die(' Dimensioni non corrette'); 
}
?
 

RedWolf

Nuovo Utente
7 Mag 2009
22
0
0
Roma
www.antrocom.org
Prova a recuperare larghezza e altezza direttamente dal file. Una cosa tipo:

PHP:
$upload = 'PERCORSO CARTELLA/'; 
    $nome_temporaneo = $_FILES['miofile']['tmp_name'];  
    $nome_file = $_FILES['miofile']['name'];  

    $x = "800"; // larghezza massima
    $y = "600"; // altezza massima
    $percorso = "$upload.$nome_file;
    $imgx = imagesx($percorso); // ecco la larghezza
    $imgy = imagesy($percorso); // ecco l'altezza

if($x > $imgx || $y > $imgy){ 
echo "Dimensioni non corrette"; 
}

In alternativa, puoi usare smartImage, una classe molto potente e facile da settare, che in presenza di dimensioni superiori a quelle desiderate crea una thumbnail:
http://www.codicefacile.it/smartimage/
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
attenzione Wolf c'è un errore:
PHP:
$percorso = $upload.$nome_file;
 
Discussioni simili
Autore Titolo Forum Risposte Data
P asp upload image con resize peso senza componenti? Classic ASP 0
M Upload immagine con javascript problemi con FormData() Javascript 1
Cosina Upload multiplo con invio allegati per email PHP 0
Cosina Upload multiplo con archiviazione in cartella PHP 16
S Problemi con modulo upload video php (help!) PHP 0
L [PHP] problema con upload e javascript (upload multiplo) Javascript 2
L [PHP] upload con errore PHP 2
F [PHP] Validare form prenotazione appuntamento tattoo con upload image PHP 0
S PHP: Aiuto con upload immagini che si auto tuotano PHP 24
C [PHP] Upload immagine in un form con target _blank: non funziona PHP 7
B Upload immagine con ajax post Ajax 5
max_400 upload di foto con descrizione PHP 6
C Upload immagini con classe non funzionante PHP 1
P Problema con lettura filesystem del client da server! Upload multiplo foto. PHP 5
F Problema con upload di immagini che superano 2MB PHP 14
A Problema con Upload immagini PHP 9
D Upload file in cartella con progress bar PHP 6
P upload immagini con antepria jQuery 1
xone Form con campi input text e upload file PHP 4
S Selezionare files con drag and drop prima di upload PHP 0
M Annuncio con Upload foto PHP 1
F [Risolto] upload immagini con la classe di Baol74 con size immagine Classic ASP 15
F Problema con upload di file PHP 1
M Adattare script di "form mail con upload file" al mio form mail HTML! PHP 7
G UPLOAD con controllo esistenza file Classic ASP 0
R Upload multiplo con creazione di cartella PHP 10
M upload file con progress bar PHP 10
A problema con upload immagini multiple PHP 0
M Upload con drag and drop PHP 1
S Upload file con IIS7? Web Server 0
helpdesk file Upload con ridimensionamento PHP 32
M upload con nome file impostato PHP 4
Z Upload file con XMLHttpRequest Javascript 0
D upload immagini con blob PHP 1
G Problema con upload immagini e IE7 PHP 6
A Upload con definizione del nome da salvare sul server PHP 6
V Problema con Pure Asp Upload Classic ASP 4
PoLe Upload ASP.NET non funziona con IE8 ASP.NET 2
M Upload con ASP.Net ASP.NET 1
F Problema Upload file con Internet Explorer PHP 29
SolidSnake4 miglior script per l'upload di immagini con php su DB PHP 5
S Problema Dominio su Tiscali e upload con ADSL ALICE Domini 1
C aggiornare immagini con upload baol74 Classic ASP 3
C problema upload immagini grandi con 4images Programmazione 0
mythar Upload con trascinamento Classic ASP 0
D problema con upload [Era: info] PHP 13
U upload delle immagini con ASP Classic ASP 5
M Problema con l'upload PHP 0
A Problemi con upload su aruba.it Hosting 28
J Domenica con l'upload Classic ASP 1

Discussioni simili