Visualizzazione risultati 1 fino 5 di 5

Discussione: Librerie GD

  1. #1
    Guest

    Predefinito Librerie GD

    ciao,

    ho realizzato un sistema di upload di immagini con ridimensionamento e salvataggio e creazione di una thumbnail. il sistema funziona perfettamente su un altro sito mi sono, però, accorto che su altervista il sistema di ridmensionamento non funziona cioè non salva l'immagine.
    Il ridimensionatore è il seguente
    http://www.codicefacile.it/smartimage/
    dopo 4 giorni trascorsi per capire il problema e senza venirne a capo ho pensato che il problema fosse delle librerie GD infatti questo ridimensionatore richiede:
    PHP >=4.0.1 or PHP >=5
    GD libraries 1 or GD2
    volevo sapere se queste sono attive su altervista, se sono attivabili o non ci sono proprio. nel caso peggiore qualcuno mi può suggerire una alternativa per ridimensionare le immagini?
    grazie.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Basta fare un phpinfo() per scoprire che attualmente Altervista usa GD 2.2.1 e PHP 5.2 (c'è anche il 5.3).

    Sicuro di salvare in una posizione all'interno del tuo spazio web?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    ciao,

    grazie per la risposta..questo elimina il dubbio delle librerie GD.
    Si imposto come salvataggio una dir del mio spazio..incollo tutto il codice magari può essere utile a capire il problema.

    Codice PHP:

    <?
    include 'config_ph.php'; //inclusioni OK
    require 'function.php';

    ?>

    <form method="post" action="<?php echo $_SERVER['../../PHP_SELF']; ?>" enctype="multipart/form-data">
    <p>Carica le foto con le seguenti caselle: una foto per ogni casella!</p>
    </div>
    <br />
    <p>
    <input type="file" name="file[]"><br />
    <input type="file" name="file[]"><br />
    <input type="file" name="file[]"><br />
    <input type="file" name="file[]"><br />
    <input type="file" name="file[]"><br />
    <input type="submit" name="Submit" value="Submit">
    </p>
    <br /><br />

    <?php
    if(isset($_POST['Submit'])) {
    // Creo una array con i formati accettati
    $tipi_consentiti = array("image/gif","image/jpeg","image/jpg","image/pjpeg","image/png");

    // Devo ciclare sui vari file e fargli fare il processo
    for($i=0;$i<count ($_FILES['file']['name']);$i++) {

    if(@
    $_FILES['file']['name'][$i] != "") {
    // verifico che il formato del file sia tra quelli accettati
    if (in_array($_FILES['file']['type'][$i], $tipi_consentiti)){

    $path_tmp="tmp";
    if (
    $error == UPLOAD_ERR_OK) {
    $tmp_name = $_FILES['file']['tmp_name'][$i];
    $name = $_FILES["file"]["name"][$i];
    move_uploaded_file($tmp_name, "$path_tmp/$name"); // è OK!!!!!!
    }
    //Fin QUI OK
    // recupero i dati dal form

    $nome = @addslashes($_FILES['file']['name'][$i]);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($_FILES['file']['type'][$i]);

    // *************************************************
    // Sto usando il ridimensionatore smart class per ridimensionare l'immagine originale
    // dopo salvo in via definitiva l'immagine ridimensionata e cancello quella temporanea
    // *************************************************

    $directori="tmp";
    $nomedelfile=$_FILES['file']['name'][$i];
    echo
    "nome file: $nomedelfile <br>";
    echo
    "dir * nomefile: $directori * $nomedelfile <br>";

    include
    "../include/SmartImage.class.php";

    // Settings
    $src=$nomedelfile;
    echo
    "src: $src <br>";
    $destination = "reserved/images/";
    echo
    "destinazione: $destination <br>";

    // Start!
    $img = new SmartImage($src);
    $img->resize(600, 400);
    $destinazione=$destination.$nomedelfile;
    echo
    "*destinazione*: $destinazione <br>";

    $img->saveImage("$destinazione", 60);

    $img->close();

    // **************************** FINE smartclass ***************************

    // creo la miniatura
    @makeThumb($path_img, $immagine_da_mostrare, $nome, $tipo, $caricamento);

    // aggiorno il database
    $query = "INSERT INTO images_gallery (Titolo, Album, Nome, Tipo, Datatempo_upload, visibile) VALUES ('$nome', 'foto', '$nome', 'foto', NOW(), 'si')";
    $res = @mysql_query($query) or die (mysql_error());

    // Stampo a video un po' di informazioni
    echo "Nome: ".$_FILES['file']['name'][$i]."<br />";
    echo
    "Dimensione: ".$_FILES['file']['size'][$i]." byte <br />";
    echo
    "Tipo: ".$_FILES['file']['type'][$i]."<br />";
    echo
    "Copia eseguita con successo.<br /><br />";
    // Cancello il file dalla cartella temporanea
    // unlink("$directori/".$_FILES['file']['name'][$i]);
    }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "Impossibile eseguire l'upload. Tipo di file non consentito! <br>";
    echo
    "nome file: ". $_FILES['file']['name'][$i] ." <br>";
    }
    // chiudo l'if di in array
    } // chiudo l'if per verificare di prend solo i nomifile pieni
    } // Chiudo il cliclo for
    } // Chiudo l'if se il campo dell'album è selezionato

    ?>
    </form>
    spero questo posa aiutare a capire il problema.
    grazie.
    ciao.

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Mi sembra di capire che l'immagine caricata la salvi nella cartella tmp/, ma poi alla funzione gli passi solo il nome del file senza percorso. Non è un errore?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    ciao,

    avevi ragione non passavo alla classe anche il percorso ma solo il nome del file.
    ora funziona.
    Non mi funzionava la function per creare la miniatura ed era un problema di percorso! ora tutto ok!
    grazie per la dritta!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •