Visualizzazione dei risultati da 1 a 2 su 2

Discussione: upload immagini Nuovo

  1. #1
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297

    upload immagini Nuovo

    dico "Nuovo" perchè ho aperto un altra discussione simile a questa, ma non uguale.

    sto cercando un modo per uppare le img su una cartella nel server

    faccio cosi

    Codice PHP:

    <?php

    do {
      if (
    is_uploaded_file($_FILES['image']['tmp_name'])) {
        
    // Controllo che il file non superi i 18 KB
        
    if ($_FILES['image']['size'] > 18432) {
          
    $msg "

    Il file non deve superare i 18 KB!!</p>"
    ;
          break;
        }
        
    // Ottengo le informazioni sull'immagine
        
    list($width$height$type$attr) = getimagesize($_FILES['image']['tmp_name']);
        
    // Controllo che le dimensioni (in pixel) non superino 160x180
        
    if (($width 600) || ($height 600)) {
          
    $msg "

    Dimensioni non corrette!!</p>"
    ;
          break;
        }
        
    // Controllo che il file sia in uno dei formati GIF, JPG o PNG
        
    if (($type!=1) && ($type!=2) && ($type!=3)) {
          
    $msg "

    Formato non corretto!!</p>"
    ;
          break;
        }
        
    // Verifico che sul sul server non esista già un file con lo stesso nome
        // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
        
    if (file_exists('upload_img/'.$_FILES['image']['name'])) {
          
    $msg "

    File già esistente sul server. Rinominarlo e riprovare.</p>"
    ;
          break;
        }
        
    // Sposto il file nella cartella da me desiderata
        
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload/'.$_FILES['image']['name'])) {
          
    $msg "

    Errore nel caricamento dell'immagine!!</p>"
    ;
          break;
        } 
      }
      echo 
    "file caricato correttamente";
    } while (
    false);
    echo 
    $msg;




    ?>


    Ora pero' vorrei aggiustarlo con altre cose:

    ad esempio
    vorrei che quando salva il file sul server, deve rinominarlo con caratteri casuali(in modo da evitare la sovrascrittura in caso di nomi uguali.

    E' poi vorrei scrivere sul db le varie informazioni
    il tipo
    il size
    e magari il link dell'immagine


    qualcuno puo' aiutarmi
    grazie ciao a tutti

  2. #2
    1) prima di fare questo

    list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);

    devi assicurarti che si tratti di una img. La cosa non sempre semplicissima dato il comportamento anomalo su alcuni browser di $_FILES['image']['type'] e pertanto io preferisco verificare l'estensione
    $ext = end(explode('.', $_FILES['image']['name']));
    e poi verificare che sia un'estensione consentita.

    2) per evitare il problema della sovrascrittura
    - non è sufficiente una stringa random (si potrebbe cmq verificare che venga generata 2 volte la stessa stringa) ma deve essere anche univoca. Io faccio:

    $new_name = time().$ext;

    Oppure puoi utilizzare una delle millemila classi presenti sul web per fare l'upload

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.