Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1

    Upload immagini, per favore aiutatemi !!!

    Ciao a tutti, utilizzo il seguente codice per uplodare immagini sul sito:
    Codice PHP:
    do {  if (is_uploaded_file($_FILES['image']['tmp_name'])) {       
    // Ottengo le informazioni sull'immagine    
    list($width$height$type$attr) = getimagesize($_FILES['image']['tmp_name']);     }          
    // Controllo che il file sia in uno dei formati GIF, JPG o PNG    
    if (($type!=1) && ($type!=2) && ($type!=3)) {      
    $msg "Nessuna immagine è stata inserita nel database";      
    break;    
    }           
    // Verifico che sul sul server non esista già un file con lo stesso nome   
     // In alternativa potrei dare io un nome che sia funzione della data e dell'ora    
    if (file_exists('public/upload/'.$_FILES['image']['name'])) {      
    $msg "<p>File gi&agrave; esistente nel database</p>";      
    break;    
    }            
    // Trova l'estensione del file    
    $estensione=strrchr($_FILES["image"]["name"],'.');
    // Eventuale nuovo nome da dare al file uploadato    
    $immagine $codice.$estensione;        
    $upload_dir 'public/upload/';

    // Sposto il file nella cartella da me desiderata    
    if (!move_uploaded_file($_FILES['image']['tmp_name'], "$upload_dir/$immagine")) {      
    $msg "<p>Si &egrave; verificato un errore nel caricamento.</p>";      
    break;    
    }
    ///// CREA THUMBNAIL!!!!!
    //variabili di configurazione 

    $cfg['srcpath'] = 'public/upload/'
    $cfg['dstpath'] = 'offerte_articoli/immagini/'
    $cfg['dest_width'] = 400
    $cfg['imgquality'] = 70



    //crea la miniatura del file indicato in $filename 
    function create_thumb($filename

    global 
    $cfg;   
    $my_src_file $cfg['srcpath'] . $filename;   
    $my_dst_file $cfg['dstpath'] . $filename;   
    $src_img imagecreatefromjpeg($my_src_file);   
    $size getimagesize($my_src_file);   
    $src_width $size[0];   
    $src_height $size[1];   
    $quality $cfg['imgquality'];   
    $dest_height round(($cfg['dest_width'] * imagesy($src_img)) / imagesx($src_img));   
    $dst_img imagecreatetruecolor($cfg['dest_width'], $dest_height);   
    imagecopyresized($dst_img$src_img0000$cfg['dest_width'], $dest_height,   imagesx($src_img), imagesy($src_img));   
    imagejpeg($dst_img$my_dst_file$quality);   
    imagedestroy($src_img);   
    imagedestroy($dst_img); 
    }

    create_thumb("$immagine","t_$immagine");

    ///// FINE CREA THUMBNAIL!!!!!!

     
    } while (false);
    echo 
    $msg
    Vorrei modificarlo in modo che se l'immagine uplodata avesse la larghezza superiore all'altezza, la miniatura diventerebbe larga 400 px.
    Mentre se l'altezza dell'immagine uplodata fosse maggiore della larghezza, allora la miniatura diventerebbe alta 400 px.
    Non ci riesco, sto impazzendo, aiuto per favore.

  2. #2
    Nessuno puo' aiutarmi ?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Starai anche impazzendo, ma hai provato a modificarlo? Hai una qualche idea di come fare?

    Ecco come dovresti procedere:
    - caricare l'immagine
    - leggere le dimensioni dell'immagine caricata con la funzione getimagesize()
    - con un if/else decidi in base a larghezza e altezza come assegnare i nuovi valori di larghezza ed altezza per l'immagine ridimensionata

    Tutto qua, non serve altro.

  4. #4
    Si, ho fatto diverse prove ma mi fa sempre la base di 400 anche nel caso che sia l'altezza a dover essere 400.

    Ho utilizzato if ed else ma nel settore //crea la miniatura del file indicato in $filename

    ​non riesco ad apportare le modifiche necessarie.

    Io devo assegnare solo il valore di 400 (base o alteza) e l'altro valore deve essere in proporzione, ad esempio 400x240 o 240x400.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E' abbastanza ovvio se qui lasci scritto esplicitamente 400 e non ci metti il valore che ti serve realmente

    $cfg['dest_width'] = 400;

    perché la larghezza non dovrà essere sempre 400, dovrà esserlo solo in caso di immagini orizzontali.

  6. #6
    Se l'immagine è orizzontale va bene $cfg['dest_width'] = 400;
    Se è verticale vorrei height = 400

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Da quanto ho capito, lo script si basa solo sulla larghezza, all'altezza ci pensa poi lui.

    In caso di immagini verticali, partendo dalle dimensioni originali, ricavati quanto dovrà essere larga l'immagine nuova affinché l'altezza risulti 400 e metti questa larghezza in $cfg['dest_width']

  8. #8
    Ci avevo pensato ma credevo fosse solo una scappatoia e non la soluzione migliore.
    Se mi dici che non c'e' modo di farlo funzionare nei due versi ( x ed y) faro' cosi'.
    Ciao e grazie.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Certo che c'è modo di modificarlo, ma lo stravolgeresti, se quello script lì funziona in quella maniera che senso ha? Tanto varrebbe scrivere uno nuovo.

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.