Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    uploading di file e controllo

    ho un problemino con uno script per l'uploading di file.

    Nello specifico ho creato un codice normalissimo che mi consente l'uploading di immagini in una cartella apposita e che funziona correttamente solo che se cerco di implementarlo in modo che l'immagine possa venire caricata solo se non già presente nella cartella non mi funziona.

    Mi viene sempre presentato il messaggio "Attenzione immagine già presente" ma contemporaneamente l'immagine viene caricata in sostituzione di quella precendente.

    dove sbaglio?

    ecco il codice

    codice:
    <?php
    $tmp_dir = "c:\\tmp\\uploades";
    
    $file_uploaded = $_FILES['img']['tmp_name'];
    $real_name = $_FILES['img']['name'];
     
       $dir = opendir("./img/");
    	 while($file = readdir($dir)){
    	  if($file == $real_name){
    		 echo "attenzione immagine già presente";
    		}else {
         if(is_uploaded_file($file_uploaded)){
      	 $path = ".\\img\\$real_name";
    		 move_uploaded_file($file_uploaded,$path);
    		} 
    	 } 
      }
    ?>
    
    <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
      <input type="file" name="img" />
      <input type="submit" name="invia" value="invia" />
    </form> 
    
    <?php
    $dir = opendir("./img/");
    while($file = readdir($dir)){
     if(!is_dir($file)){
     echo "<img src=\"./img/$file\" width=\"100\" />" . "
    
    ";
     }
    }
    ?>

  2. #2
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    ok a posto.

    codice:
    <?php
    $tmp_dir = "c:\\tmp\\uploades";
    
    $file_uploaded = $_FILES['img']['tmp_name'];
    $real_name = $_FILES['img']['name'];
     
       $dir = opendir("./img/");
    	 while($file = readdir($dir)){
    	  if($file == $real_name){
    		 $img = 1;
    		}
      }
    	
    	if($img != 1) {
      	if(is_uploaded_file($file_uploaded)){
      	 $path = ".\\img\\$real_name";
    		 move_uploaded_file($file_uploaded,$path);
    		} 
    	}
    ?>

  3. #3
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    l'unica sfiga è che il confronto viene fatto su tutta la stringa quindi per lo scrpit:

    immagine.jpg e immagine.JPG sono diverses ma poi sul server vengono sovrascritte, sapete un modo elegante per uscirne?

  4. #4
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    [supersaibal]Originariamente inviato da Sgurbat
    immagine.jpg e immagine.JPG sono diverses ma poi sul server vengono sovrascritte, sapete un modo elegante per uscirne? [/supersaibal]
    Fai il controllo richiamando la funzione strtolower()
    Codice PHP:
    if($file == $real_name
    diventa
    Codice PHP:
    if(strtolower($file) == strtolower($real_name)){ 
    Ciao!

  5. #5
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    si grazie ci avevo già pensato.
    Cmq questo renderebbe lo script non case-sensitive per tutto il nome del file e non solo per l'estensione.

    Adesso ci lavoro su.

    Grazie cmq.

  6. #6
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    Allora basterebbe usare questo metodo insieme a substr per ricavare solo l'estensione.

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.