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

    Ed ora creo una anteprima e ne salvo l'url

    Carico la recensione, carico tutte le foto MA...

    Vorrei che di ogni fotina venisse creata una thumb 200xqualcosa e che l'url della thumb venisse registrato nel db.

    Come posso modifricare il foreach affinchè faccio questo.
    Internet quasi nessuno spiega come si fanno le thumb con le GD

    Finora sono a:
    codice:
    $query = "INSERT INTO tab_loc 
    (data_loc,..,valpiste_loc) 
    VALUES 
    ('$data_loc',..,'$valpiste_loc')";
    if (mysql_query($query, $db))
    echo "L'articolo è stato inserito correttamente";
    else
    echo "Erorre durante l'inserimento";
    
    foreach ($_FILES["upfile"]["error"] as $key => $error) {
       if ($error == UPLOAD_ERR_OK) {
           $tmp_name = $_FILES["upfile"]["tmp_name"][$key];
    	   $nnow = time();
    	   $nrandom = rand(100000000, 999999999);
    	   $name = "".$nnow."-".$nrandom.".jpg";
    	   $name = ($name) ? $name : $_FILES["upfile"]["name"][$key];
           move_uploaded_file($tmp_name, "upload/$name");
    	   $nome_foto = $name;
    	   $query1 =mysql_query( "SELECT MAX(id_loc) FROM tab_loc");
    	   $idrif_foto = mysql_result($query1,0,0);
    	   $query = "INSERT INTO tab_foto (idrif_foto, nome_foto, cat_foto) VALUES ('$idrif_foto', '$name', '1')";
    if (mysql_query($query, $db))
    echo "La foto è stato inserita correttamente";
    else
    echo "Erorre durante l'inserimento";
    
    	   
       }
    }
    GRAZIE
    montagne neve dolomiti
    Che ci posso fare se mi piacciono le montagne?

  2. #2
    io mi feci una funzioncina taaanto tempo fa...

    Codice PHP:
    function resize_jpg_file ($img,$maxX 220$maxY 170)
     {
      
    $src imagecreatefromjpeg($img); 
      
    $RealX imagesx($src);
      
    $RealY imagesy($src);

      if (
    $RealX $maxX
        {
         
    $newX $maxX;
         
    $newY = ($RealY/$RealX)*$newX;
        }
        else
        {
         
    $newY $maxY;
         
    $newX = ($RealX/$RealY)*$newY;
        }

       
    $dst imagecreatetruecolor($newX$newY); 
       
    imagecopyresized($dst$src0000$newX$newY$RealX$RealY); 
       
    imagejpeg($dst'new_'.$img60); 
       return 
    $dst;

    onestamente non l'ho più usata.. ma mi pare funzionasse bene

    ridimensiona proporzionalmente.

    Cioè se la lunghezza sta nei limiti definiti e la larghezza no.. per stringerla in larghezza la stringe anche in altezza... e viceversa.

    Se evi usare sempre le stesse dimensioni ti conviene modificare i default nel prototipo della funzione e poi usarla con l'immagine come unico argomento


  3. #3

    Ma non capisco una cosa

    ma non capisco una, anzi più cose.

    questa funzione crea una NUOVA immagine di dimensioni ridotte oppure ridimensiona quella esistente?

    A me serve che ne venga creata una nuova cliccando sulla quale mi si apre quella grande.

    E poi il nome della nuova immagine come lo gestisco/ottengo?

    E' per caso $dst ?
    Io poi basta che scriva:
    [img].. upload/<? echo($dst) ?>[/img]

    Grazie ancora.
    montagne neve dolomiti
    Che ci posso fare se mi piacciono le montagne?

  4. #4
    ridimensiona e crea una nuova (se vuoi la vecchia la puoi buttare tu no? inutile mettercelo lì dentro... così è più generica e va bene per tutti gli usi).

    $dst è il percorso all'immagine mi pare......il nome del nuovo file è il secondo parametro di imagejpeg (bastava sforzarsi di andare su php.net e controllare...) e cioè:'new_'.$img

    ovvero se l'originale è "pippo.jpg" la nuova si chiama "new_pippo.jpg".... chiaramente puoi personalizzare a piacimento.

    per creare l'anteprima cliccabile te la vedi tu.. quella è una logica che esula dalla funzioncina.. semplicemente la funzione ti crea l'immagine piccola....

    T potresti gestire così la cosa:
    l'utente fa l'upload della foto.. la foto grande viene copiata con un certo nome na una certa cartella, e il nome (o il percorso) lo memorizzi nel database (oppure usi direttamente l'id dell'utente come nome dell'immagine se ad esempio hai un'immagine per ogni utente...)... a quel punto.

    Dopo aver copiato l'immagine originale nella posizione giusta, e aver inserito il nome/path nel database, ti fai anche la versione piccola che ha lo stesso nome della grande + qualcosa (prima o dopo.. come ti pare a te).... a quel punto quando hai pippo.jpg sai come trovare la versione piccola...

    quindi nella pagina di anteprima carichi la piccola che viene linkata alla grande


  5. #5
    scusami.. non ricordavo bene cosa fosse $dst... ho guardato il manuale.. è smeplicemente l'handler della nuova immagine creata (su cui copi la grande ridimensionata) che serve per essere passato ad altre funzioni... in ogni caso qua:

    imagejpeg($dst, 'new_'.$img, 60);

    scrive $dst su 'new_'.$img con qualità 60 (su una scala di 100 se non erro)

    quindi il valore di ritorno della mia funzione (cioè $dst) è abbastanza inutile.. la funzione già ti crea l'immagine.

    a dire il vero la funzione andrebbe migliorata ad esempio per verificare se imagejpeg è riuscita effettivamente a scrivere su disco .. pardon.. feci velocissimammente questa funzione tempo fa ed evidentemente per la fretta non ci pensai...


  6. #6
    Originariamente inviato da }gu|do[z]{®©
    ridimensiona e crea una nuova (se vuoi la vecchia la puoi buttare tu no? inutile mettercelo lì dentro... così è più generica e va bene per tutti gli usi).

    Dopo aver copiato l'immagine originale nella posizione giusta, e aver inserito il nome/path nel database, ti fai anche la versione piccola che ha lo stesso nome della grande + qualcosa (prima o dopo.. come ti pare a te).... a quel punto quando hai pippo.jpg sai come trovare la versione piccola...

    quindi nella pagina di anteprima carichi la piccola che viene linkata alla grande

    Proprio quello che volevo fare nel ciclo foreach.
    Grazie, provo a vedere se ci riesco.

    E complimenti per il tuo sito
    montagne neve dolomiti
    Che ci posso fare se mi piacciono le montagne?

  7. #7
    Originariamente inviato da fabioski
    E complimenti per il tuo sito
    NOn vedo perchè.. io lo vorrei levà

    vabbè.. non andiamo OT.. cmq proprio in questi giorni ho trovato qualche buona idea sui contenuti.. quindi presto lo ristrutturerò.. ma al momento è giusto per presenza come si suol dire.. è proprio 'na bozza

    fine OT

  8. #8
    Messo così non mi va... errore:
    Warning: imagejpeg(): Unable to open 'new_/tmp/phpC1x2Dj' for writing in /mounted-storage/home11/sub001/sc16663-LKKM/www/save-ski-resort.php on line 80
    La foto è stato inserita correttamente
    Warning: imagejpeg(): Unable to open 'new_/tmp/php71DylS' for writing in /mounted-storage/home11/sub001/sc16663-LKKM/www/save-ski-resort.php on line 80
    La foto è stato inserita correttamente

    il codice è stato inserito così:

    codice:
    function resize_jpg_file ($img,$maxX = 220, $maxY = 170) 
     {$src = imagecreatefromjpeg($img);  
      $RealX = imagesx($src); 
      $RealY = imagesy($src); 
      if ($RealX > $maxX)  
        { 
         $newX = $maxX; 
         $newY = ($RealY/$RealX)*$newX; 
        } 
        else 
        { 
         $newY = $maxY; 
         $newX = ($RealX/$RealY)*$newY; 
        } 
       $dst = imagecreatetruecolor($newX, $newY);  
       imagecopyresized($dst, $src, 0, 0, 0, 0, $newX, $newY, $RealX, $RealY);  
       imagejpeg($dst, 'new_'.$img, 60);  
       return $dst; 
    }
    
    foreach ($_FILES["upfile"]["error"] as $key => $error) {
    
    e giusta fare così?
    $img = $_FILES["upfile"]["tmp_name"][$key];
    ed io non ho la cartella /tmp...
    
    
       if ($error == UPLOAD_ERR_OK) {
           $tmp_name = $_FILES["upfile"]["tmp_name"][$key];
    	   $nnow = time();
    	   $nrandom = rand(100000000, 999999999);
    	   $name = "".$nnow."-".$nrandom."-ski.jpg";
    	   $name = ($name) ? $name : $_FILES["upfile"]["name"][$key];
    	   resize_jpg_file ($img,$maxX = 220, $maxY = 170);
           move_uploaded_file($tmp_name, "upload/$name");
    	   
    	   $nome_foto = $name;
    	   $query1 =mysql_query( "SELECT MAX(id_loc) FROM tab_loc");
    	   $idrif_foto = mysql_result($query1,0,0);
    	   $query = "INSERT INTO tab_foto (idrif_foto, nome_foto, cat_foto) VALUES ('$idrif_foto', '$name', 'localita')";
    if (mysql_query($query, $db))
    echo "La foto è stato inserita correttamente";
    else
    echo "Erorre durante l'inserimento";
    montagne neve dolomiti
    Che ci posso fare se mi piacciono le montagne?

  9. #9
    Ho provato spostare la posizione delle righe che creano e ridimensionano le foto... ma niente da fare
    Dove sbaglio?
    montagne neve dolomiti
    Che ci posso fare se mi piacciono le montagne?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.