Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194

    caricamento/salvataggio/ridimensionamento.. due domande?

    Ciao a tutti, ho due domande per chi avrà la pazienza di aiutarmi, potrebbe ridurre ed ottimizzare un po' il codice ed aiutarmi ad imparare qualcosa di nuovo.


    Codice PHP:
    // Ottengo le informazioni sull'immagine originale
    list($width$height$type$attr) = getimagesize($_FILES['userFile']['tmp_name']);

    // Creo la versione 120*90 dell'immagine (thumbnail)
    $thumb imagecreatetruecolor(12090);
    $source imagecreatefromjpeg($_FILES['userFile']['tmp_name']);
    imagecopyresized($thumb$source000012090$width$height);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb,'../thumbs/01.jpg');



    $handle fopen ('../thumbs/01.jpg'"r") or die ('impossibile aprire il file');
    $minion fread ($handlefilesize('../thumbs/01.jpg')) or die('impossibile leggere il file');
    fclose ($handle);
    $minion mysql_real_escape_string($minion);
                                
    $query "UPDATE immagini SET
    immagine='" 
    $image "',
    thumbs='" 
    $minion "',
    type='
    {$_FILES['userFile']['type']}'
    WHERE id=1"
    ;
    $result mysql_query($query); 
    Prima domanda.
    Quando indico il nome del file da salvare vorrei assegnare l'estensione con una variabile. Per precisione la variabile che va a prendere l'estensione del file caricato. In questo modo (quando avrò aggiunto il ridimensionamento per altre estensioni) restituirà ogni volta l'estensione corretta e non dovrò fare più casistiche a seconda se sia jpg, png o gif.
    Ho provato ad esempio così ma non mi salva nulla:
    Codice PHP:
    $percorso "..thumbs/01.";
    $estensione $_FILES['userFile']['type'];
    imagejpeg($thumb$percorso $estensione); 


    Seconda domanda.
    Per inserire la mia immagine ridimensionata nel database (campo blob) ho dovuto riprenderla dalla cartella del server e quindi rimetterla in variabile come faccio quando la prendo da un form.
    La variabile $thumb dovrebbe contenere già l'immagine ma se la inserisco nel db ho un file di pochi byte che non mi restituisce a schermo nulla, come mai?

    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194
    Un aiutino su come comporre il percorso di salvataggio con le variabili?

  3. #3
    1) se fai "print_r($_FILES)" vedrai che in "type" non c'è l'estensionse ma il mimetype dell'immagine. quindi o usi quella per ricavare l'estensione (http://www.sitepoint.com/web-foundat...complete-list/ ) oppure fai il parsing di "name" e ti prendi l'estensione (meno affidabile, mappa il mimetype ihmo)

    2) perchè salvi l'immagine ridimensionata su hard disk se poi la vuoi salvare come blob nel database? cmq nel database devi salvare il contenuto dell'imamgine in base64

    Codice PHP:
    $minion base64_encode(file_get_contents("path/to/thumb/image")); 
    poi lato html la stampi così:

    Codice PHP:
    <img src="data:<?php echo $mime_type_dell_immagine?>;base64,<?php echo $valore_estratto_dal_database_del_campo_thumb?>" />
    dove mime_type_dell_immagine te lo sei salvato precedentemente nel database (a meno che non salvi tutto come jpeg) oppure usi http://php.net/manual/en/function.mime-content-type.php
    cmq esempio http://stackoverflow.com/a/21606233
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194
    perchè salvi l'immagine ridimensionata su hard disk se poi la vuoi salvare come blob nel database?
    All'inizio il mio scopo era ridimensionare e inserire in database ma non ci sono riuscito. Non sapevo del base64, mi aggiornerò.
    Grazie mille.

  5. #5
    Utente di HTML.it L'avatar di Redirect301
    Registrato dal
    Sep 2015
    residenza
    TO
    Messaggi
    16
    ho sempre usato substring per dividere l'estensione dal nome file, esempio:

    $percorso = $directory.'/'.substr($files,0,strlen($files)-4);
    $estensione = substr($files,strlen($files)-4);

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.