Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di dyd87
    Registrato dal
    Mar 2007
    Messaggi
    64

    Upload immagini: non funzionante

    Salve

    Ho un problema con l'upload di immagini.
    Se ne carico due o una , funziona tutto; se provo a caricarne tre , quattro o cinque , non entra neanche nella funzione gestisci_upload (presente nel secondo codice).
    Cosa potrebbe essere secondo voi?

    Grazie



    Codice pagina php contenente gli input file.

    codice:
    <form action="check_image.php" method="POST" enctype="multipart/form-data">
    
    ...
    ...
    ...
    
       <input type="file" name="image_filename1" value="" />
            
    
            <input type="file" name="image_filename2" value="" />
            
    
            <input type="file" name="image_filename3" value="" />
            
    
            <input type="file" name="image_filename4" value="" />
            
    
            <input type="file" name="image_filename5" value="" />
            
    
    
    
            Descrizione
    
            <textarea name="descrizione" rows="4" cols="20" class="ckeditor"> </textarea>
    
            
    
            <input type="submit" value="Inserisci" />
    
        </form>
    Codice contenente l'upload dell'immagine (check_image.php)

    codice:
    include "auth.php";
    require "../init.php";
    
    
    $foto1 = "";
    $foto2 = "";
    $foto3 = "";
    $foto4 = "";
    $foto5 = "";
    
    
    if(is_uploaded_file($_FILES['image_filename1']['tmp_name'])) {
        $foto1 = gestisci_upload(1);
    }
    
    if(is_uploaded_file($_FILES['image_filename2']['tmp_name'])) {
        $foto2 = gestisci_upload(2);
        
    }
    
    if(is_uploaded_file($_FILES['image_filename3']['tmp_name'])) {
        $foto3 = gestisci_upload(3);
       
    }
    
    if(is_uploaded_file($_FILES['image_filename4']['tmp_name'])) {
        $foto4 = gestisci_upload(4);
       
    }
    
    if(is_uploaded_file($_FILES['image_filename5']['tmp_name'])) {
        $foto5 = gestisci_upload(5);
      
    }
    
    
    
    
    $stato = mysql_real_escape_string($_POST['stato']);
    $marca = mysql_real_escape_string($_POST['marca']);
    $modello = mysql_real_escape_string($_POST['modello']);
    $carburante = mysql_real_escape_string($_POST['carburante']);
    $cilindrata = mysql_real_escape_string($_POST['cilindrata']);
    $versione = mysql_real_escape_string($_POST['versione']);
    $anno = mysql_real_escape_string($_POST['anno']);
    $prezzo = mysql_real_escape_string($_POST['prezzo']);
    $descrizione = mysql_real_escape_string($_POST['descrizione']);
    $data = date("Y-m-d");
    
    
    
    $insert = "INSERT INTO auto
                set stato = '$stato',
                    marca = '$marca',
                    modello = '$modello',
                    carburante = '$carburante',
                    cilindrata = '$cilindrata',
                    versione = '$versione',
    
                    anno = '$anno',
    
                    prezzo = '$prezzo',
                    descrizione = '$descrizione',
                    data = '$data',
                    foto1 = '$foto1',
                    foto2 = '$foto2',
                    foto3 = '$foto3',
                    foto4 = '$foto4',
                    foto5 = '$foto5'";
                        
    
    $insertresults = mysql_query($insert)
        or die(mysql_error());
    
    
    header('Location: index.php');
    exit;
    
    
    
    
    function gestisci_upload($num){
    
                    $sFilename = "image_filename".$num;
                    
                    $image = fopen("image.txt", "a");
                    fwrite($image, $num);
    
    		// gestisco l'upload della foto
    
    		$tipi_supportati = array('1','2','3'); //'.gif','.jpeg','.png'
    
    		list($width, $height, $type, $attr) = getimagesize($_FILES[$sFilename]['tmp_name']);
    
    		if ($type == 1) {
    			$source = imagecreatefromgif($_FILES[$sFilename]['tmp_name']);
    		} elseif ($type == 2) {
    			$source = imagecreatefromjpeg($_FILES[$sFilename]['tmp_name']);
    		} elseif ($type == 3) {
    			$source = imagecreatefrompng($_FILES[$sFilename]['tmp_name']);
    		} else {
    			//$CONTENT .= "<div style=\"color:red;\">Formato immagine non supportato</div>";
    			return;
    		}
    
    		$time = time();
    		$imgfile = "../upload/".$time."_".$num.".jpg";
    		$thumbfile = "../upload/thumbs/".$time."_".$num.".jpg";
    
    		// faccio la thumb
    /*
            if ($width >= $height) {
                $ratio = 130/$width;
            } else {
                $ratio = 160/$height;
            }
    */
    
            $ratio = ($width/200 >= $height/200) ? 200 / $width : 200 / $height;
    
    		$newwidth = $width * $ratio;
    		$newheight = $height * $ratio;
    		//$temp = imagecreatetruecolor($newwidth, $newheight);
                    $temp = imagecreatetruecolor(200, 200);
                    $background = imagecolorallocate($temp, 250, 240, 213);
                    imagefilledrectangle($temp, 0, 0, 200, 200, $background);
                    imagecopyresampled($temp, $source, (100-$newwidth/2), (100-$newheight/2), 0, 0, $newwidth, $newheight, $width, $height);
    
                    imagejpeg($temp,$thumbfile,90);
    
    
    
    		// faccio la grande
    
    		if ($width <= 500) {
    			$temp = imagecreatetruecolor($width, $height);
                            imagefilledrectangle($temp, 0, 0, $width, $height, $background);
    			imagecopyresampled($temp, $source, 0, 0, 0, 0, $width, $height, $width, $height);
    			imagejpeg($temp,$imgfile,90);
    		} else {
    			$ratio = 500/$width;
    			$newwidth = $width * $ratio;
    			$newheight = $height * $ratio;
    			$temp = imagecreatetruecolor($newwidth, $newheight);
                            imagefilledrectangle($temp, 0, 0, $newwidth, $newheight, $background);
    			imagecopyresampled($temp, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    			imagejpeg($temp,$imgfile,90);
    		}
    
                   fclose($image);
                   return $time."_".$num;
    
    }
    
    
    ?>

  2. #2
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Confesso di non aver guardato TUTTO il codice. Ma a naso potrebbe essere un problema con i limiti di upload e tempo di esecuzione del PHP.

    Lancia un file PHP con <?php phpinfo(); ?> e da un'occhiata ai valori di max_execution_time, max_upload_size e max_post_nonricordo. Forse ho sbagliato alcuni nomi, ma i concetti sono quelli, ovvero esiste un limite sul tempo di esecuzione dello script, un limite sulla dimensione degli upload e uno sulla dimensione dei dati POST.

    Per controprova, fai l'upload del solo file1, ma fallo con un file abbastanza grande da superare in dimensione la somma dei tre (non funzionanti) che hai provato finora. O con cinque files molto molto piccoli... Oddio, è più semplice a farsi che a dirsi...

  3. #3
    Utente di HTML.it L'avatar di dyd87
    Registrato dal
    Mar 2007
    Messaggi
    64
    Era un problema sul post_max_size in Php.ini.
    L'ho settato a 30m , ora funziona

    Grazie

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    AUTOEDIT, visto che hai dato la risposta: io lo avevo provato con 5 foto da 1 mega e andava..

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    una domanda che ti faccio, perchè non ho capito:
    rinomini le immagini con time, ed è ok.
    ma nel DB i nomi delle immagini sono quelli originali? o sbaglio?
    come fai poi a recuperare i nomi dei file uploadati dal DB? mi sfugge..

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.