Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    122

    upload and resize + immagini

    Buongiorno

    Ho questo codice che fa l'upload e il resize di un immagine e la inserisce nel database.
    Vorrei modificare questo codice per fare in modo di fare la stessa operazione ma per altre 4 immagini, questa volta non obbligatorie...

    Codice PHP:
    <? set_time_limit(0);  $link  =  mysql_connect(localhostPROVAPROVA) or die("Could not connect to host."); mysql_select_db(PROVA) or die("Could not find database."); define ("MAX_SIZE","500");  define ("WIDTH","100"); define ("HEIGHT","100"); define ("WIDTH2","300"); define ("HEIGHT2","300"); function make_thumb($img_name,$filename,$new_w,$new_h){ $ext=getExtension($img_name); if(!strcmp("jpg",$ext) || !strcmp("jpeg",$ext)) $src_img=imagecreatefromjpeg($img_name); if(!strcmp("png",$ext)) $src_img=imagecreatefrompng($img_name); if(!strcmp("gif",$ext)) $src_img=imagecreatefromgif($img_name); $old_x=imageSX($src_img); $old_y=imageSY($src_img); $ratio1=$old_x/$new_w$ratio2=$old_y/$new_h; if($ratio1>$ratio2)    { $thumb_w=$new_w$thumb_h=$old_y/$ratio1; } else    { $thumb_h=$new_h$thumb_w=$old_x/$ratio2; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);  if(!strcmp("png",$ext)) imagepng($dst_img,$filename);  else imagejpeg($dst_img,$filename); if (!strcmp("gif",$ext)) imagegif($dst_img,$filename);  imagedestroy($dst_img);  imagedestroy($src_img);  } function getExtension($str) {  $i strrpos($str,".");  if (!$i) { return ""; }  $l strlen($str) - $i;  $ext substr($str,$i+1,$l);  return $ext;  } $errors=0; if(isset($_POST['Submit'])){ $image=$_FILES['cons_image']['name']; if ($image)  { $filename stripslashes($_FILES['cons_image']['name']); $extension getExtension($filename); $extension strtolower($extension);  if (($extension != "jpg")  && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))    { echo '<h1>Unknown extension! Please use .gif, .jpg or .png files only.</h1>'$errors=1; }else{  $size=getimagesize($_FILES['cons_image']['tmp_name']); $sizekb=filesize($_FILES['cons_image']['tmp_name']);  if ($sizekb MAX_SIZE*1024) { echo '<h1>You have exceeded the 1MB size limit!</h1>'$errors=1; } $randrand(01000);  $image_name=$rand.'.'.$extension;  $consname="image/".$image_name$consname2="image/thumb/".$image_name;  $copied copy($_FILES['cons_image']['tmp_name'], $consname); $copied copy($_FILES['cons_image']['tmp_name'], $consname2); $sql="INSERT INTO PROVA (image, image2) VALUES ('$consname', '$consname2')" or die(mysql_error()); $query mysql_query($sql)or die(mysql_error());  if (!$copied) { echo '<h1>Copy unsuccessfull!</h1>'$errors=1; }else{  $thumb_name=$consname2    ;  $thumb=make_thumb($consname,$thumb_name,WIDTH,HEIGHT); $thumb=make_thumb($consname,$consname,WIDTH2,HEIGHT2); } }     } }

    Codice PHP:
    <input type="file" name="cons_image"

  2. #2
    Ciao,
    potresti ripetere l'operazione di upload, per esempio inserita la prima immagine


    Codice PHP:
    immagine inserita correttamente
    <input type="file" name="cons_image"
    e così via fino a quando non hai inserito 4 immagini più la prima
    conti le immagine presenti se <= 5 non fai comparire il campo file e metti un messagio non puoi inserire altre immagini.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    122
    Grazie Roberto per la risposta,

    Come faccio praticamente a riutilizzare il campo di upload della prima immagine?

  4. #4
    Fai una query per contare le immagini,

    Codice PHP:
    <?php if ($immagini 5) { ?>
    <form action="" method="post">
     <input type="file" name="cons_image">
    </form>
    <?php
    } else {
    echo
    "Non puoi inserire altre immagini";
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    122
    Queste immagini devono essere registrate tutte e 5 eventualente del DB,
    sia la thumbs che l'immagine più grande...

    Come faccio nella stessa pagina a fare quello che mi dici tu...

    Praticamente, questo script permette di uploadare, ridimensionare e inserire nel database 1 immagine... io sotto vorrei fare altri 4 campi per uploadare immagini (Non obbligatori), dove ripete praticamente le azioni che già fa con l'altra immagine, cioè l'upload, il resize e l'inserimento nel DB.

    Il database è composto da 2 campi ora:
    Immagine thumbs e l'immagine grande.

    Dopo sarà:
    5 campi thumbs e 5 campi per l'immagine grande.

  6. #6
    la mia e un'idea nuda e cruda è per inserire n immagini con la ripetizione del campo file!

    Codice PHP:
    <?php
    if (isset($_POST['upload'])) { 
    esegui lo script
    dopo lo script valorizzi una variabile
    $ok
    ="immagine salvata";
    }

    qui fai sempre la query per conatre le immagini

    if ($immagini 5) {
    echo
    "$ok"?>
    <form action="" method="post">
    <input type="file" name="cons_image">
    <input type="submit" name="upload" value="salva">
    </form>
    <?php
    } else {
    echo
    "Non puoi inserire altre immagini";
    ?>
    nel database memorizza solo il nome o percorso dell'immagine così non vai ad appesantirlo, aggiungi un campo id per identificare l'immagine in caso dovrai cancellarla o modificarla!

    comunque se cerchi nel forum trovi parecchi esempi in merito ciao!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    122
    Se invece vorrei adottare una soluzione in cui ci sono 5 campi di upload...
    il primo obbligatorio e gli altri quattro no.
    E' al quando clicco su invia elabora queste immagini e le ridemensiona creando:
    thumbs e immagine grande
    e poi le inserisce ogniuna nel suo posto...

    Come dovrei fare?

  8. #8
    Dovresti mettere 5 campi file con 5 nomi diversi
    immagine_principale
    immagine1
    immagine2
    immagine3
    immagine4

    prima di elaborare i dati fai un controllo se è stato inserito un file in immagine principale, se positivo elabori tutti i dati se negativo lo rimandi al form (ti basta fare un semplice if else)
    dopodichè inserisci le immagini nel database.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    122
    Quello che avevo fatto...

    Riesci a darmi qualche dritta

    Codice PHP:
    <input type="file" name="cons_image"> <input type="file" name="cons_image1"> <input type="file" name="cons_image2"> <input type="file" name="cons_image3"> <input type="file" name="cons_image4"

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.