Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Formato .jpeg e .png

  1. #1

    Formato .jpeg e .png

    Nel seguente pezzo di codice:

    Codice PHP:
    <?php
    function CreateThumb($filetype$srcdir$dstdir$name$tw$tc)
    {
        
    // todo: consider refactoring
        
    $src "$srcdir/$name";
        
    $dst "$dstdir/$name";

        switch (
    $filetype) {
            case 
    'image/jpg':
            case 
    'image/jpeg':
                
    $srcImg imagecreatefromjpeg($src);
                break;
            case 
    'image/png':
                
    $srcImg imagecreatefrompng($src);
                break;
            case 
    'image/gif':
                
    $srcImg imagecreatefromgif($src);
                break;
        }

        
    $origWidth imagesx($srcImg);
        
    $origHeight imagesy($srcImg);

        
    $ratio $origWidth $tw;
        
    $th $origHeight $ratio;

        
    $thumbImg imagecreatetruecolor($tw$th);
        
    imagecopyresized($thumbImg$srcImg0000$tw$th$origWidth$origHeight);

        switch (
    $filetype) {
            case 
    'image/jpg':
            case 
    'image/jpeg':
                
    $res imagejpeg($thumbImg$dst$tc);
                break;
            case 
    'image/png':
                
    $res imagepng($thumbImg$dst);
                break;
            case 
    'image/gif':
                
    $res imagegif($thumbImg$dst);
                break;
        }

        return 
    $res;
    }

    function 
    filtranome($name$filetype)
    {
        
    // todo: consider refactoring
        
    $extension explode('/'$filetype);
        
    // qui filtri con varie funzioni
        
    $nuovonome $name;
        
    $nuovonome str_replace(array(' ''.',','), '_'$nuovonome); // elimino alcuni caratteri
        
    $nuovonome strtolower($nuovonome); // tutto in minuscolo
        
    $nuovonome time() . '_' $nuovonome '.' $extension[1];
        return 
    $nuovonome;
    }

    // controllo che non ci siano stati errori nell'upload (codice = 0)
    if ($_FILES['uploadfile']['error'] == 0) {
        
    $acceptedTypes = array('image/jpeg','image/png','image/gif','image/jpg','image/bmp','image/png');
        
    // upload ok
        // controllo formato
        
    $filetype $_FILES['uploadfile']['type'];
        if (!
    in_array($filetype$acceptedTypes)) {
            die(
    "Formato file non valido");
        }
        
    // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
        
    copy($_FILES['uploadfile']['tmp_name'], "file_caricati/" filtranome($_FILES['uploadfile']['name'], $filetype)) or die("Impossibile caricare il file");
        
    // upload terminato, stampo alcune info sul file
        
    echo "
    [b]Upload terminato con successo[/b]
    Le Informazioni riguardanti il File che hai appena caricato sono:

    "
    ;
        echo 
    "Nome file originale: ".$_FILES['uploadfile']['name']."
    "
    ;
        echo 
    "Nome file caricato: ".filtranome($_FILES['uploadfile']['name'], $filetype)."
    "
    ;
        echo 
    "Dimensione file: ".$_FILES['uploadfile']['size']."
    "
    ;
        echo 
    "Tipo MIME file: ".$_FILES['uploadfile']['type'];

    } else {
        
    // controllo il tipo di errore
        
    if ($_FILES['uploadfile']['error'] == 2) {
            
    // errore, file troppo grande (> 1MB)
            
    die("Errore, file troppo grande: il massimo consentito è 1MB");
        } else {
            
    // errore generico
            
    die("Errore generico");
        }
    }

    $srcdir "file_caricati";
    $dstdir "miniature";
    $name filtranome($_FILES['uploadfile']['name'],$filetype);

    // dimensioni della miniatura da creare
    $tw 400// larghezza
    // livello di compressione della miniatura
    $tc 90;

    $res CreateThumb($filetype$srcdir$dstdir$name$tw$tc);
    if (!
    $res) die("Impossibile salvare la miniatura"); 
    ?>
    Quando l'Immagine/Foto viene caricata tramite questo Upload, quest'ultima viene salvata nelle cartelle "file_caricati" e "miniature" con lo stesso formatto con cui vengono caricate.
    Come posso fare per far si che:
    - Le immagini caricate in "file_caricati" vengano poi salvate in formato .jpeg;
    - Le immagini caricate in "miniature" vengano salvate in formato .png;

    Cioè, tramite il sistema di Upload io carico una foto con formato .gif, ma poi vengano salvate nelle cartelle con le impostazioni definite sopra.

    Consigli?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    dai un'occhiata a questa classe

    http://www.codicefacile.it/smartimage/

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.