Come si carica un'immagine in upload?

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Sì d'accordo non è che non so usare move_file_upload, no devo caricare un'immagine in un database dopo averla ridimensionata.
C'è qualche cosa nel codice che ho scritto che mi blocca e non trovo cos'è, ovviamente non ci sono errori logici o di sintassi, quindi il PHP non mi aiuta.
Il semplice form di upload:
HTML:
<form id="form-foto" method="post" action="upload.php" enctype="multipart/form-data">
  <input type="file" class="btn btn-primary" name="uploadfoto" value="">
  <button type="submit" class="btn btn-info" name="upload">CARICA FOTO <span class="glyphicon glyphicon-upload"></span></button>
</form>

Il codice PHP per l'upload
PHP:
//	Carica foto.
	//	echo '<pre>';var_dump( $_POST, $_FILES );echo '</pre>';
if ( filter_has_var( INPUT_POST, 'upload' )) {
	if( isset( $_FILES['uploadfoto'] ) AND $_FILES['uploadfoto']['error'] == UPLOAD_ERR_OK ) {
		$fileImmagine = file_get_contents( $_FILES['uploadfoto']['tmp_name'] );
			var_dump( getimagesizefromstring( $fileOriginale ));
			//	echo '<pre>';var_dump( $fileImmagine );echo '</pre>';
		$tipoImmagine = exif_imagetype( $_FILES['uploadfoto']['tmp_name'] );
		if ( $tipoImmagine > 0 AND $tipoImmagine < 4 ) {
			//$thumbs = thumbs( $fileImmagine, image_type_to_mime_type( $tipoImmagine ));
		} else {
			$errore = 'Immagine non riconosciuta, sicuro che sia un\'immagine valida? ( GIF, JPG/JPEG e PNG )';
		}
	} else {
		$errore = 'Il file che stai tentando di caricare o è corrotto, o è troppo grande o semplicemente non è un\'immagine.';
	}
}

Ci sono un sacco di remarke relativi alle prove che sto conducendo, thumbs() è una funzione che modifica l'immagine ma che qui non viene chiamata ( fino a quando non risolvo il problema ).
In pratica comunque legga il file contenente l'immagine $_FILES['uploadfoto']['tmp_name'] questo mi viene riportato come una stringa di caratteri, in pratica il file immagine, ma non come foto.
Anche usando le GD non viene letto come immagine ma come stringa di caratteri.
Non so come gestirlo, aiuti?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
non so se hai già risolto e non è molto chiaro quale problema affligge il tuo script,
fammi almeno sapere se l'ho indovinato

ma ... perché vuoi immagazzinare le immagini nel database ?
il "file system" non è già un ottimo database ?

ciao
Marino

ps, scusa se l'ho presa un po' alla larga, ma mi piaceva capire e vedere cose nuove
ho mixato un mio script con il tuo ....
PHP:
<?php
if ( empty($_POST) ) 
    { 
?>

<form id="form-foto" method="post" action="UploadPhoto.php" enctype="multipart/form-data">
  <input type="file" class="btn btn-primary" name="uploadfoto" value="">
  <button type="submit" class="btn btn-info" name="upload">CARICA FOTO 
    <span class="glyphicon glyphicon-upload"></span>
  </button>
</form>

<?php
    }
else
    Uploaduploadfoto();

function Uploaduploadfoto()
    {
//  echo '<pre>'; var_dump( $_POST, $_FILES ); echo '</pre>'; 

    $uploadfoto = "";
    if ($_FILES["uploadfoto"]["error"] == 4)
        return true;
    else
        {
        if ($_FILES["uploadfoto"]["error"] > 0)
            {
            print "<font color=red>Upload Return Code: ".$_FILES["uploadfoto"]["error"]."</font><br />";
            return false;
            } 
        }

    if ( filter_has_var( INPUT_POST, 'upload' ))
        { 
        if( !empty( $_FILES['uploadfoto'] ) AND $_FILES['uploadfoto']['error'] == UPLOAD_ERR_OK ) 
            { 
            $uploadfoto_name = $_FILES["uploadfoto"]["name"];
            $uploadfoto_type = $_FILES["uploadfoto"]["type"];
            $uploadfoto_size = $_FILES["uploadfoto"]["size"] / 1024;
            $uploadfoto_temp = $_FILES["uploadfoto"]["tmp_name"];
            $uploadfoto_path = dirname($_FILES["uploadfoto"]["tmp_name"]);
            $uploadfoto      = $uploadfoto_path."/".$uploadfoto_name;


            $image_file = file_get_contents( $_FILES['uploadfoto']['tmp_name'] );
            $image_type = exif_imagetype( $_FILES['uploadfoto']['tmp_name'] );
            $image_size = getimagesizefromstring( $image_file );


            if ( ($uploadfoto_size == 0)			// vale parametro di php.ini 
            || ( ($uploadfoto_type <> "image/gif")
            && ($uploadfoto_type <> "image/jpeg")
            && ($uploadfoto_type <> "image/pjpeg")
            && ($uploadfoto_type <> "application/zip")
            && ($uploadfoto_type <> "application/x-zip-compressed")
            && ($uploadfoto_type <> "application/x-shockwave-flash") ) )
                { 
                print "<font color=red>Dimensione o Tipo di file non valido</font><br />";
//              return false;
                }

            if ( $image_type > 0 AND $image_type < 4 )
                { 
//              $thumbs = thumbs( $image_file, image_type_to_mime_type( $image_type )); 
                }
            else
                { 
                $errore = 'Immagine non riconosciuta, sicuro che sia un\'immagine valida? ( GIF, JPG/JPEG e PNG )'; 
                } 

            print "<table>";
            print "<tr><td>Upload : </td><td>".$uploadfoto_name."</td></tr>";
            print "<tr><td>Type : </td><td>".$uploadfoto_type."</td></tr>";
            print "<tr><td>Size (kB) : </td><td>".$uploadfoto_size."</td></tr>";
            print "<tr><td>Stored in : </td><td>".$uploadfoto_temp."</td></tr>";
            print "<tr><td>folder : </td><td>".$uploadfoto_path."</td></tr>";
            print "<tr><td>new file : </td><td>".$uploadfoto."</td></tr>";
            print "<tr><td> </td><td> </td></tr>";
            print "<tr><td>Type : </td><td>".$image_type."</td></tr>";
            print "<tr><td> </td><td> </td></tr>";
            print "<tr><td>width : </td><td>".$image_size[0]."</td></tr>";
            print "<tr><td>heigh : </td><td>".$image_size[1]."</td></tr>";
            print "<tr><td>type : </td><td>".$image_size[2]."</td></tr>";
            print "<tr><td>dimension : </td><td>".$image_size[3]."</td></tr>";
            print "<tr><td>bits : </td><td>".$image_size['bits']."</td></tr>";
            print "<tr><td>channels : </td><td>".$image_size['channels']."</td></tr>";
            print "<tr><td>mime : </td><td>".$image_size['mime']."</td></tr>";
            print "</table>";

            $image_file = base64_encode( $image_file );
            echo '<pre>'; var_dump( $image_file ); echo '</pre>';

// qui scrivo nel db e poi leggo

            $decoded_file = base64_decode( $image_file );
            @unlink( $uploadfoto_name );
            file_put_contents( $uploadfoto_name, $decoded_file );
            }
        }
    return true;
    } 
?>
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
C Al clik al posto dell immagine carica video youtube Javascript 0
I carica foto profilo sessione utente PHP 2
Sevenjeak Php8 non carica estenzioni PHP 0
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
B [PHP]la pagina php non si carica se aggiungo funzione while PHP 10
lucarpenter Carica lenta di IPad 4 Presentati al Forum 1
C carica foto da webcam su mysql tramite PHP PHP 2
S [RISOLTO]Carica pagina da evento onclick di una griglia Javascript 12
A [json+jsp+j2ee]select jsp carica valori al onchange di un altra select Java 1
L Attesa mentre carica pagina Javascript 16
E Wifi non carica le pagine Reti LAN e Wireless 2
emanuelevt script carica tardi sfondo Javascript 0
I javascript non carica funzione Javascript 0
A GUI non creata da un software che carica il mio come plugin Java 2
M non si carica la pagina sul server HTML e CSS 2
D video flash che non si carica! in locale tutto bene ma online non si carica HTML e CSS 7
C una pagina del mio sito non si carica correttamente HTML e CSS 2
M Slideshow quando carica la pagina Javascript 4
B refresh browser di un swf che carica un txt esterno Flash 1
S [Java] applet non carica classi importate da libreria.jar Java 1
V non carica immagini in locale Flash 3
D checkbox che non si carica Flash 4
GennyX Programma che carica on line su server Windows e Software 1
P Anomalo: non mi carica il player Flash 8
Z Sito flash on line carica solo il primo filmato Flash 1
S Carica DB... mi sono arenato !!! Classic ASP 10
cerbero javascript ke carica immagini e testo Javascript 11
peppoweb Microsoft suona la carica Discussioni Varie 0
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
gara1 inserire immagine di sfondo in canvas Javascript 0
T Dividere un'immagine in 3 parti orizzontali e salvarle separatamente Photoshop 2
W Immagine come maschera photoshop Photoshop 1
L Ultima immagine Windows e Software 0
A Immagine decentrata con sfondo trasparente Photoshop 0
A Scontornare immagine di bassa qualità. Photoshop 2
B Selezionare un'immagine e salvare la selezione Photoshop 3
F Immagine come fosse selezione attiva Photoshop 1
Y Percorso assoluto file immagine HTML e CSS 9
K Come posso usare un'immagine al posto di un bottone? HTML e CSS 2
M Upload immagine con javascript problemi con FormData() Javascript 1
M Visulizzare immagine con php PHP 8
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
L Come caricare un'immagine in Canvas dinamicamente Javascript 0
R Cambiare il nome dell'immagine dopo caricamento ftp HTML e CSS 0
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
Y Come caricare e visualizzare un'immagine PHP 0
S Testo scrolla su immagine che cambia HTML e CSS 0
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
R Caricamento immagine su cartella remota + mysql PHP 3

Discussioni simili