Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Upload con resize

  1. #1

    Upload con resize

    Salve a tutti
    Scusate il post forse gia trattato ma avrei bisogno di inserire un valore nella mia pagina di Upload e il codice php nn lo conosco tanto bene!

    Attualmente carico le immagini sul server facendo un resize ad un valore impostato (a scelta)

    Noto che comunque, facendo il resize delle immagini a 550x413 risulti ancora abbastanza pesante...

    Adesso pensavo di poter abbassare la qualità della stessa tipo all'80% ma nn so come inserire questo passaggio nello script e cercavo aiuto da voi!

    Posto il codice e ringrazio anticipatamente!

    codice:
    <?php ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"?>
    <?php
    // upload the file
    if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) {
    	
    	// file needs to be jpg,gif,bmp,x-png and 4 MB max
    	if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg" || $_FILES["image_upload_box"]["type"] == "image/gif" || $_FILES["image_upload_box"]["type"] == "image/x-png") && ($_FILES["image_upload_box"]["size"] < 4000000))
    	{
    		
      
    		// some settings
    		$max_upload_width = 550;
    		$max_upload_height = 413;
    
    //		$max_upload_width = 2592;
    //		$max_upload_height = 1944;
    		$path=$_POST['path'];
    //print $path;
    
    		  
    		// if user chosed properly then scale down the image according to user preferances
    		if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
    			$max_upload_width = $_REQUEST['max_width_box'];
    		}    
    		if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
    			$max_upload_height = $_REQUEST['max_height_box'];
    		}	
    
    		
    		// if uploaded image was JPG/JPEG
    		if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){	
    			$image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
    		}		
    		// if uploaded image was GIF
    		if($_FILES["image_upload_box"]["type"] == "image/gif"){	
    			$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
    		}	
    		// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)	
    		// if uploaded image was BMP
    		if($_FILES["image_upload_box"]["type"] == "image/bmp"){	
    			$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
    		}			
    		// if uploaded image was PNG
    		if($_FILES["image_upload_box"]["type"] == "image/x-png"){
    			$image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
    		}
    		
    		// Cartella dove caricare i files
    		$remote_file = "images/stories/$path/".$_FILES["image_upload_box"]["name"];
    		imagejpeg($image_source,$remote_file,100);
    		chmod($remote_file,0644);
    	//print $remote_file;
    	
    
    		// get width and height of original image
    		list($image_width, $image_height) = getimagesize($remote_file);
    	
    		if($image_width>$max_upload_width || $image_height >$max_upload_height){
    			$proportions = $image_width/$image_height;
    			
    			if($image_width>$image_height){
    				$new_width = $max_upload_width;
    				$new_height = round($max_upload_width/$proportions);
    			}		
    			else{
    				$new_height = $max_upload_height;
    				$new_width = round($max_upload_height*$proportions);
    			}		
    			
    			
    			$new_image = imagecreatetruecolor($new_width , $new_height);
    			$image_source = imagecreatefromjpeg($remote_file);
    			
    			imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
    			imagejpeg($new_image,$remote_file,100);
    			
    			imagedestroy($new_image);
    		}
    		
    		imagedestroy($image_source);
    		
    		
    		header("Location: submit2.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES["image_upload_box"]["name"]);
    		exit;
    	}
    	else{
    		header("Location: submit2.php?upload_message=make sure the file is jpg, gif or png and that is smaller than 4MB&upload_message_type=error");
    		exit;
    	}
    }
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Carica immagini</title>
    <style type="text/css">
    <!--
    body,td,th {
    	font-family: Arial, Helvetica, sans-serif;
    	color: #333333;
    	font-size: 12px;
    }
    
    .upload_message_success {
    	padding:4px;
    	background-color:#009900;
    	border:1px solid #006600;
    	color:#FFFFFF;
    	margin-top:10px;
    	margin-bottom:10px;
    }
    
    .upload_message_error {
    	padding:4px;
    	background-color:#CE0000;
    	border:1px solid #990000;
    	color:#FFFFFF;
    	margin-top:10px;
    	margin-bottom:10px;
    }
    
    -->
    </style>
    </head>
    
    <body>
    
    <h1 style="margin-bottom: 0px">Carica foto big</h1>
    
    
            <?php if(isset($_REQUEST['upload_message'])){?>
                <div class="upload_message_<?php echo $_REQUEST['upload_message_type'];?>">
                <?php echo htmlentities($_REQUEST['upload_message']);?>
                </div>
    		<?php }?>
    
    
    <form action="submit2.php" method="post" enctype="multipart/form-data" name="image_upload_form" id="image_upload_form" style="margin-bottom:0px;">
    <label>Image file, maximum 4MB. it can be jpg, gif,  png:</label>
    
              <input name="image_upload_box" type="file" id="image_upload_box" size="40" />
              <input type="submit" name="submit" value="Upload image" />     
         
         
    
    	
    
    
         
          <label>Scale down image? (550 x 413 px max):</label>
          
    
          <input name="max_width_box" type="text" id="max_width_box" value="550" size="4">
          x      
          
          <input name="max_height_box" type="text" id="max_height_box" value="413" size="4">
          px.
          
    
          <select name="path">
    		<option value="nido" selected>Un giorno al nido</option>
    		<option value="gallery_school">gallery school</option>
    		<option value="gitaalbatros">Gita Albatros</option>
    		<option value="ascuola">A scuola</option>
    		<option value="hallowin">Hallowin</option>
    
    </select>
    
          
    
          <p style="padding:5px; border:1px solid #EBEBEB; background-color:#FAFAFA;">
          Notes:
    
      The image will not be resized to this exact size; it will be scalled down so that neider width or height is larger than specified.
    
      When uploading this script make sure you have a directory called &quot;image_files&quot; next to it and make that directory writable, permissions 777.
    
      After you uploaded images and made tests on our server please delete all uploaded images  :)
    
      </p>
    
    <input name="submitted_form" type="hidden" id="submitted_form" value="image_upload_form" />
              </form>
    
    
    
    
    <?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>
    
    
    
    Quale immagine ho caricato
    </p>
    <?php }?>
    
    </body>
    </html>
    Ps: Alla voce "che immagine ho caricato, sarebbe possibile recuperare l'immagine appena caricata..
    Ho provato cosi ma senza risultato

    codice:
    <?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>
    
    
    
      
      
      
    
    </p>
    <?php }?>
    Attendo Vs info
    Scusate sto imparando!

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non serviva postare tuuutta la pagina..
    se voi abbassare la qualità delle immagini devi modificare questo
    imagejpeg($new_image,$remote_file,100);
    da 100 magari metti 80

    visto che fai un redirect appena finito l'upload, hai 2 strade:
    o ti porti in GET il nome dell'immagine col percorso, e già lo fai..
    altrimenti visto che fai upload_message_type=success
    nella pagina submit2.php fai un if che se upload_message_type == success fai un echo del nome dell'immagine..

  3. #3
    Importante!!
    Non ho postato 2 volte lo stesso messaggio..
    Si è verificato un problema durante il salvataggio del post e stranamente si è duplicato
    1 dei 2 post potrebbe essere anche chiuso dall'amministratore

    Grazie
    Scusate sto imparando!

  4. #4
    Ok, funziona... impostando il valore a 80 l'immagine risulta piu leggera!

    Adesso ritorno su quest'ulteriore situazione...
    Alla fine dell'upload nn visualizzo l'immagine caricata (solo come promemoria)

    dall'html noto che il problema è perche nn riconosce il percorso!
    Ho provato in questi 2 modi,.. ma nada! come recupero correttamente la path

    codice:
    <?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>
    
    Hai caricato questa immagine:
    
      
      
    
    <?php }?>
    Ripeto, solo errore di path, l'immagine la recupera correttamente

    Grazie
    Scusate sto imparando!

  5. #5
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146
    ciao a me servirebbe una cosa veramente simile ma tutta da php..

    se tipo al tuo codice ci levassi tutto quello che viene dopo
    "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>"


    come potrei impostarlo per salvare l'immagine ad esempio

    $url

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    se sei in un'altra pagina devi portarti appresso in GET anche $path..
    il resto te lo vede? il nome della foto intendo..
    ti basta fare
    $path_GET = $_POST['path'];
    poi nel redirect
    Codice PHP:
    header("Location: submit2.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES["image_upload_box"]["name"] . "&$percorso=" $path_GET);
            exit; 
    nella seconda pagina, submit2.php avrai un valore in GET da prendere e da stampare tipo
    $path = $_GET['percorso'];

  7. #7
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146
    Eh se la volessimo trasformare in una funzione completa?
    cosi??
    cosa dovrei cambiare??
    codice:
    <?php ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"?>
    <?php
    function invia_immagine($urlassoluta){
    if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) {
    	
    	// file needs to be jpg,gif,bmp,x-png and 4 MB max
    	if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg" || $_FILES["image_upload_box"]["type"] == "image/gif" || $_FILES["image_upload_box"]["type"] == "image/x-png") && ($_FILES["image_upload_box"]["size"] < 4000000))
    	{
    		
      
    		// some settings
    		$max_upload_width = 550;
    		$max_upload_height = 413;
    
    //		$max_upload_width = 2592;
    //		$max_upload_height = 1944;
    		$path=$_POST['path'];
    //print $path;
    
    		  
    		// if user chosed properly then scale down the image according to user preferances
    		if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
    			$max_upload_width = $_REQUEST['max_width_box'];
    		}    
    		if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
    			$max_upload_height = $_REQUEST['max_height_box'];
    		}	
    
    		
    		// if uploaded image was JPG/JPEG
    		if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){	
    			$image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
    		}		
    		// if uploaded image was GIF
    		if($_FILES["image_upload_box"]["type"] == "image/gif"){	
    			$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
    		}	
    		// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)	
    		// if uploaded image was BMP
    		if($_FILES["image_upload_box"]["type"] == "image/bmp"){	
    			$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
    		}			
    		// if uploaded image was PNG
    		if($_FILES["image_upload_box"]["type"] == "image/x-png"){
    			$image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
    		}
    		
    		// Cartella dove caricare i files
    		$remote_file = "images/stories/$path/".$_FILES["image_upload_box"]["name"];
    		imagejpeg($image_source,$remote_file,100);
    		chmod($remote_file,0644);
    	//print $remote_file;
    	
    
    		// get width and height of original image
    		list($image_width, $image_height) = getimagesize($remote_file);
    	
    		if($image_width>$max_upload_width || $image_height >$max_upload_height){
    			$proportions = $image_width/$image_height;
    			
    			if($image_width>$image_height){
    				$new_width = $max_upload_width;
    				$new_height = round($max_upload_width/$proportions);
    			}		
    			else{
    				$new_height = $max_upload_height;
    				$new_width = round($max_upload_height*$proportions);
    			}		
    			
    			
    			$new_image = imagecreatetruecolor($new_width , $new_height);
    			$image_source = imagecreatefromjpeg($remote_file);
    			
    			imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
    			imagejpeg($new_image,$remote_file,100);
    			
    			imagedestroy($new_image);
    		}
    		
    		imagedestroy($image_source);
    		
    		
    		header("Location: submit2.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES["image_upload_box"]["name"]);
    		exit;
    	}
    	else{
    		header("Location: submit2.php?upload_message=make sure the file is jpg, gif or png and that is smaller than 4MB&upload_message_type=error");
    		exit;
    	}
    }
    }
    
    echo 'indirizzo immagine locale:'
    ?>

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..completa in che senso??
    così come??
    ..cioè secondo te io ogni volta che metti qualcosa mi spippetto tutto quello che hai scritto?
    se hai fatto quello che ho scritto sopra deve funzionare.. e comunque funziona la logica.. e comunque quello che ti ho scritto di aggiungere non lo hai aggiunto..

  9. #9
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146
    no è la stessa che sta sopra l'originale diciamo

  10. #10
    Ho perso il filo del post...

    Rispondo a telegio
    1) Fa tutto nella stessa pagina submit2.php
    2) Il nome dell'immagine la vede

    codice:
    Codice PHP:
    <?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>



    Quale immagine ho caricato

      [img]http://www.sito.com/images/stories/<?php print $path;?>/<?php echo $_REQUEST['show_image'];?>[/img]
      [img]http://www.sito.com/images/stories/<? echo $path;?>/<?php echo $_REQUEST['show_image'];?>[/img]

    </p>
    <?php }?>
    dall'html visualizzo questo:

    Codice PHP:



    Quale immagine ho caricato

      
    [img]http://www.sito.com/images/stories//comfortmaxy.jpg[/img]
      
    [img]http://www.sito.com/images/stories//comfortmaxy.jpg[/img]
    </p
    è questo <? echo $path;?> o <?php print $path;?> che sbaglio a scrivere
    Scusate sto imparando!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.