Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Trasformazione in funzione

    ciao!
    per fare l'upload uso sempre questro scriptino, con le dovute modifiche a seconda del caso.
    vorrei trasformare il tutto in funzione in modo da renderlo parametrizzabile e più usabile:
    Codice PHP:
            include 'lib/wideimage/WideImage.php';
            
    $upload FALSE;
            
    $maxSize 819200;
            
    $acceptType = array(
                
    'png' => 'image/png',
                
    'jpeg' => 'image/jpeg',
                
    'jpg' => 'image/jpg'
            
    );
            
    $cartella "../IMMAGINI/testata/"// MODIFICARE IL PERCORSO
            
    for ($i 0$i count($_FILES['file']['name']); $i++) {
                if (
    $_FILES['file']['name'][$i] != "") {
                    list(
    $width$height$type$attr) = getimagesize($_FILES['file']['tmp_name'][$i]);
                    
    $nome_upload $_POST['nome'] . strrchr($_FILES['file']['name'][$i], '.');
                    
    $destinazione $cartella $nome_upload;
                    if (
    $_FILES['file']['size'][$i] <= $maxSize) { // CONTROLLO DIMENSIONE
                        
    if (in_array($_FILES['file']['type'][$i], $acceptType)) { // CONTROLLO ESTENSIONE
                            
    $image WideImage::load($_FILES['file']['tmp_name'][$i]);
                            
    $thumb $image->resize(520200);
                            
    $thumb->saveToFile($destinazione);
                            
    $upload TRUE;
                            if (!
    $upload) {
                                echo 
    "Errore nell'upload
    "
    ;
                            }
                        } else {
                            echo 
    "Tipo di file non valido
    "
    ;
                        }
                    } else {
                        echo 
    "File troppo grande
    "
    ;
                    }
                }
            } 
    il problema è che nn ci riesco,
    nel senso, che parametri devo passargli?
    a parte il nome ovviamente....
    ad esempio la faccio un cilco for per l'upload multiplo.
    a rigor di logica penso mi convenga mettere la funzione nel ciclo, però poi nn saprei come gestire il valore i-esimo ($i).
    quindi ho pensato di mettere anche il ciclo nella funzione, ma nn so come sia come mossa.
    voi che ne dite?
    qualche consiglio??

  2. #2
    Scritta al volo, prova così:

    Codice PHP:
    sendMail("../IMMAGINI/testata/"$_FILES$_POST['nome'], 819200520200);

    function 
    sendMail($cartella$files$name$maxSize$resizeWidth$resizeHeight) {
        include 
    'lib/wideimage/WideImage.php';
        
    $upload FALSE;
        
    $acceptType = array('png' => 'image/png''jpeg' => 'image/jpeg''jpg' => 'image/jpg');
        for (
    $i 0$i count($files['file']['name']); $i++) {
            if (
    $files['file']['name'][$i] != "") {
                list(
    $width$height$type$attr) = getimagesize($files['file']['tmp_name'][$i]);
                
    $nome_upload $name strrchr($files['file']['name'][$i], '.');
                
    $destinazione $cartella $nome_upload;
                if (
    $files['file']['size'][$i] <= $maxSize) {
                    if (
    in_array($files['file']['type'][$i], $acceptType)) {
                        
    $image WideImage::load($files['file']['tmp_name'][$i]);
                        
    $thumb $image->resize($resizeWidth$resizeHeight);
                        
    $thumb->saveToFile($destinazione);
                        
    $upload TRUE;
                        if (!
    $upload) {
                            echo 
    "Errore nell'upload
    "
    ;
                        }
                    } else {
                        echo 
    "Tipo di file non valido
    "
    ;
                    }
                } else {
                    echo 
    "File troppo grande
    "
    ;
                }
            }
        }

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    intanto grazie!
    diciamo che funziona ma ho un piccolo problema.
    allora, la funzione è praticamente identica alla tua.
    se però la richiamo due volte di file:
    Codice PHP:
    uploadImg('../IMMAGINI/testata/'$_FILES$_POST['nome'], 819200520200);
    uploadImg('../IMMAGINI/testata/'$_FILES$_POST['nome'], 8192001000350); 
    mi viene fuori questo errore:
    codice:
    Fatal error: Cannot redeclare class WideImage_InvalidImageHandleException in ....../lib/wideimage/WideImage.php on line 43
    devo forse "eliminare" prima l'oggetto??

  4. #4
    ho modificato la funzione, nello specifico la parte di include:
    Codice PHP:
    function uploadImg($cartella$files$nome$maxSize$resizeWidth$resizeHeight) {
        if (!
    file_exists($cartella)) {
            
    mkdir($cartella);
        }
        include_once 
    '../lib/wideimage/WideImage.php';
        
    $upload FALSE;
        
    $acceptType = array(
            
    'png' => 'image/png',
            
    'jpeg' => 'image/jpeg',
            
    'jpg' => 'image/jpg'
        
    );
        for (
    $i 0$i count($files['file']['name']); $i++) {
            if (
    $files['file']['name'][$i] != "") {
                list(
    $width$height$type$attr) = getimagesize($files['file']['tmp_name'][$i]);
                
    $nome_upload $nome '_' $resizeWidth '_' $resizeHeight strrchr($files['file']['name'][$i], '.');
                
    $destinazione $cartella $nome_upload;
                
    //echo '<script type="text/javascript">alert("OK");</script>';
                
    if ($files['file']['size'][$i] <= $maxSize) {
                    if (
    in_array($files['file']['type'][$i], $acceptType)) {
                        
    $image WideImage::load($files['file']['tmp_name'][$i]);
                        
    $thumb $image->resize($resizeWidth$resizeHeight);
                        
    $thumb->saveToFile($destinazione);
                        
    $upload TRUE;
                        
    $image->destroy();
                        if (!
    $upload) {
                            return 
    "Errore nell'upload
    "
    ;
                        } else {
                            return 
    'OK';
                        }
                    } else {
                        return 
    "Tipo di file non valido
    "
    ;
                    }
                } else {
                    return 
    "File troppo grande
    "
    ;
                }
            }
        }

    con include_once funziona.
    ciao a grazie ancora!!

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.