Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489

    upload file con lo stesso nome

    avevo il dubbio con un upload di come archiviare in una tabella del db il nome del file (nel mio caso immagine) soprattutto nel caso in cui il file ha lo stesso nome ed estensione
    ho pensato di aggiungere il timestamp

    Codice PHP:
    $nomefile$_FILES['upload']['name'];
    $addtime(); //creo un timestamp, mi servirà per aggiungerlo al nome del file 
    $nomefile1 =$add."_".$nomefile
    e poi archiviare $nomefile1 nella tabella del db
    è un buon metodo?
    ce ne seno altri?
    grazie per il consiglio

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    se il traffico del sito non è elevatissimo e quindi è improbabile che 2 utenti facciano l'upload nello stesso momento (anzi nello stesso secondo) allora è un buon metodo, altrimenti ti consiglio di generare un codice casuale alfanumerico, di 6-7 cifre e così sei sicuro di non avere doppioni.


  3. #3
    Non so con quale meccanismo prevedi l'inserimento dei file, ma potresti benissimo prevedere di rinominare con una radice comune ogni file in upload, quindi aggiungere a questo nome l'ID della foto nel DB.
    Sei anche sicuro, in questo modo, che l'utente non inserisca nel DB un nome file con caratteri che potrebbero generarti problemi.

    Aggiungo poi, che se prevedi, per ogni utente una cartella di upload diversa, penso che il problema di doppioni di nome non sussiste proprio!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    ottimi consigli, tutti e due!
    proverò ad usare la generazione del codice e sostituire totalmente il nome del file con il codice generato.
    proverò e farò sapere...
    grazie mille

  5. #5
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    se ti può servire questa l'ho fatto un po di tempo fa, ma fa ancora il suo lavoro:

    Codice PHP:
    function generaCodiceCasuale($a=5,$livello=2){
    $casual="";

    for(
    $i=0;$i<$a;$i++){//determina di quante lettere sarà la password
        
    $mom=mt_rand(0,$livello);//maiuscolo, minuscolo o numero
     
        
    switch ($mom){
          case 
    0:
              
    $casual .=chr(mt_rand(65,90));  /// Lettere Maiuscole
              
    break;
          case 
    1:
              
    $casual .=chr(mt_rand(97,122)); ////Lettere Minuscole
              
    break;
          case 
    2:
              
    $casual .=mt_rand(0,9); ///// Numeri
              
    break;
          case 
    3:
              
    $casual .=chr(mt_rand(33,47)); ///// Caratteri speciali
              // ! " # $ % & ' ( ) * + , - . /
              
    break;
          case 
    4:
              
    $casual .=chr(mt_rand(58,64)); ///// Caratteri speciali
              // : ; < = > ? @
              
    break;
        }
    //chiusura swicth
    }//chiusura ciclo for

    return $casual;


  6. #6

  7. #7
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    grazie per l'aiuto,

    uniqid() non lo conoscevo, mi da un codice di 13 caratteri o sbaglio? (non mi trovo nella condizione di aver bisogno di un nome di file da 13 caratteri + il nome vero), magari posso limitarlo a 6-7 caratteri.
    le funzioni di rand() e figlie sembrano ideali per il mio caso.
    proverò
    garzie

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.