Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    miniatura al volo con GD LIBRARY

    Salve a tutti, ho un form con un campo file di nome "img" che punta ad una pagina php che dovrebbe eseguire una miniatura del file immagine che proviene da "img" appunto...

    Allora ho scritto queste righe di codice per effettuare una miniatura, consultando il manuale da php.net. (ah, la cartella nella quale devono essere salvate le miniature si chiama 'immagini')

    ecco il codice:

    Codice PHP:
    // ottengo le informazioni sull'immagine che si intende caricare
    list($width$height$type$attr) = getimagesize($_FILES['img']['tmp_name']);
    // creo la miniatura
    $thumb imagecreatetruecolor(10075);
    $source imagecreatefromjpeg($_FILES['img']['tmp_name']);
    imagecopyresized($thumb$source000010075$width$height);
    imagejpeg($thumb"immagini/min_".$_FILES['img']['tmp_name'], 100); 
    Sembra tutto ok, ma non crea la miniatura.... dove sbaglio????

    ps2. L'host supporta GD library...

  2. #2
    Prova così
    Codice PHP:
    // creo la miniatura
    $thumb imagecreatetruecolor(10075);
    $source imagecreatefromjpeg($_FILES['img']['tmp_name']);
    imagecopyresampled($thumb$source000010075imagesx($source), imagesy($source));
    imagejpeg($thumb"immagini/min_".$_FILES['img']['name'], 100); 


    Ps. La creazione al volo non prevede il salvataggio della miniatura sul server

  3. #3
    ho provato ma crea una miniatura di 831 bytes, standard e tutta di colore nero...
    dove puo' essere il problema?

  4. #4
    L'ho appena testato (prima non l'avevo fatto) e funziona alla perfezione, la thumb nera può essere per un errore relativo al resampling e quindi ti salva solo il resource image crudo com'è, può accadere se gli invii una gif ad esempio, comunque attiva la visualizzazione degli errori e non sbagli

  5. #5
    ma tu ci hai lasciato il codice

    // ottengo le informazioni sull'immagine che si intende caricare
    list($width, $height, $type, $attr) = getimagesize($_FILES['img']['tmp_name']);

    prima di //creo la miniatura ???

  6. #6
    Originariamente inviato da beta_persei
    ma tu ci hai lasciato il codice

    // ottengo le informazioni sull'immagine che si intende caricare
    list($width, $height, $type, $attr) = getimagesize($_FILES['img']['tmp_name']);

    prima di //creo la miniatura ???
    No, non serve a nulla e non fa differenza se poi comunque quelle variabili non le ho usate
    [Ho editato sopra]

  7. #7
    ho provato anche senza ma nulla.... sempre la miniatura nera di 831 bytes

    Inoltre ho provato anche a sostituire, facendo tutti i possibili casi, tmp_name con name e viceversa... ma il risultato e sempre lo stesso....

    come faccio???


    ps.
    questo codice che ti ho postato sta in un

    if(is_uploaded_file($_FILES['img']['tmp_name'])){
    }

    puo' centrare qualcosa?

  8. #8
    Copia il codice completo, form incluso, a me funziona benissimo senza cambiare nulla, hai attivato la visualizzazione degli errori?

  9. #9
    ok....

    codice pagina form

    Codice PHP:
    <form action="pagina.php" method="post" enctype="multipart/form-data" name="form1">
    <
    input name="img" type="file" id="img2">
    <
    input name="invia" type="submit"  id="invia2" value="Invia la foto"></form
    codice pagina.php

    Codice PHP:
    <?php 
    if(isset($_POST['invia'])){
    do{
    if(
    is_uploaded_file($_FILES['img']['tmp_name'])){
    // Controllo che il file non superi i 500 KB
        
    if ($_FILES['img']['size'] > 500432) {
          
    $_SESSION['nofield'] = "ok";
          
    $error "La foto non deve superare i 500 kb di dimensione massima...";
          break;
        }
    // Ottengo le informazioni sull'immagine
        
    list($width$height$type$attr) = getimagesize($_FILES['img']['tmp_name']);
    // Controllo che le dimensioni (in pixel) non superino i 700 di largh.
        
    if ($width 700) {
          
    $_SESSION['nofield'] = "ok";
          
    $error "La foto non deve superare i 700 pixels di larghezza massima...";
          break;
        }
    // Controllo che il file sia nel formato JPG
        
    if ($type!=2) {
          
    $_SESSION['nofield'] = "ok";
          
    $error "Il formato della foto inserita non è corretto sono ammessi solo files JPG o JPEG...";
          break;
        }
    // Verifico che sul sul server non esista già un file con lo stesso nome
        
    if (file_exists('immagini/'.$_FILES['img']['name'])) {
          
    $_SESSION['nofield'] = "ok";
          
    $error "Esiste già una foto con questo nome. Rinomina la tua foto e riprova...";
          break;
        }
    // Sposto il file nella cartella da me desiderata
        
    if (!move_uploaded_file($_FILES['img']['tmp_name'], 'immagini/'.$_FILES['img']['name'])) {
          
    $_SESSION['nofield'] = "ok";
          
    $error "Si è verificato un errore imprevisto nel caricamento della foto...";
          break;
        }    
    else{
    // creo la miniatura 
    $thumb imagecreatetruecolor(10075); 
    $source imagecreatefromjpeg($_FILES['img']['tmp_name']); 
    imagecopyresampled($thumb$source000010075imagesx($source), imagesy($source)); 
    imagejpeg($thumb"immagini/min_".$_FILES['img']['name'], 100);
    break;
    }


    while(
    false);
    header("Location: insertphoto.php?error=$error");

    ?>


    ho provato anche a fare una verifica degli errori su un altro server e mi dice:

    Warning: getimagesize(/tmp/php6C2ymO) [function.getimagesize]: failed to open stream: No such file or directory in /web/htdocs/...........

    Warning: imagecreatefromjpeg(/tmp/php6C2ymO) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /web/htdocs/..........

    Warning: imagesx(): supplied argument is not a valid Image resource in /web/htdocs/..............

    Warning: imagesy(): supplied argument is not a valid Image resource in /web/htdocs/...................

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /web/htdocs/.....................


    Le linee interessate sono quelle che mi hai postato tu

  10. #10
    se ti puo' essere di aiuto nella comprensione dello script, io carico l'immagine che viene da "img" e genero la miniatura della stessa... l'immagine me la carica perfettamente.... la miniatura no.....

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.