Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Nome incrementale

  1. #1
    Utente di HTML.it L'avatar di skill83
    Registrato dal
    Mar 2002
    Messaggi
    2,024

    Nome incrementale

    Ragazzi vorrei creare un upload con valore incrementale.
    ho scritto questo codice:
    Codice PHP:
    <?php

    define
    ("UPLOAD_DIR""./uploads/");

    if(isset(
    $_POST['action']) and $_POST['action'] == 'upload')
    {
        if(isset(
    $_FILES['user_file']))
        {
            
    $file $_FILES['user_file'];
            
    $filenome $file['name'];
            
            if(
    $file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
            {   
                
    $i "0";
                while(
    file_exists(UPLOAD_DIR.$filenome))
                {   
                    echo 
    "i = "$i"
    "
    ;
                    echo 
    "ciclo "file_exists(UPLOAD_DIR.$filenome), "
    "
    ;
                    
    $filenome basename($filenome,".jpg").$i;
                    
    $filenome $filenome.".jpg";
                    
    $file['name'] = $filenome;
                    echo 
    "filenome "$filenome"
    "
    ;
                    echo 
    "\$_FILES['nome'] "$file['name'], "
    "
    ;
                    
    $i = ++$i;
                }
                
    move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
    2");
            }
        }
    }

    ?>

    solo che in questa maniera ottengo file del tipo nomefile.jpg, nomefile0.jpg, nomefile01.jpg, nomefile012.jpg ecc... io vorrei invece nomefile.jpg, nomefile0.jpg, nomefile1.jpg, nomefile2.jpg ecc.

    Qualke consiglio


    Grazie a presto

  2. #2
    cambia la variabile $filenome quando la vai a manipolare, per questo ti trovi il nome modificato.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di skill83
    Registrato dal
    Mar 2002
    Messaggi
    2,024
    si ma io voglio che cambi il nome solo che al posto di aggiungere ogni volta un numero maggiore voglio che il numero sia sostituito

  4. #4
    Originariamente inviato da skill83
    si ma io voglio che cambi il nome solo che al posto di aggiungere ogni volta un numero maggiore voglio che il numero sia sostituito
    infatti, cambia il nome manipolato.

    Codice PHP:
                while(file_exists(UPLOAD_DIR.$filenome))
                {   
                    echo 
    "i = "$i"
    "
    ;
                    echo 
    "ciclo "file_exists(UPLOAD_DIR.$filenome), "
    "
    ;
                    
    $filenome1 basename($filenome,".jpg").$i;
                    
    $filenome1 $filenome1.".jpg";
                    
    $file['name'] = $filenome1;
                    echo 
    "filenome "$filenome1"
    "
    ;
                    echo 
    "\$_FILES['nome'] "$file['name'], "
    "
    ;
                    
    $i = ++$i;
                } 
    se non cambi il nome la riga:

    echo "ciclo ", file_exists(UPLOAD_DIR.$filenome), "
    ";

    invece di trovare $filenome originale becchera' quello che hai modificato perche' sara' stato sovrascritto l'originale.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di skill83
    Registrato dal
    Mar 2002
    Messaggi
    2,024
    [b]

    se non cambi il nome la riga:

    echo "ciclo ", file_exists(UPLOAD_DIR.$filenome), "
    ";

    invece di trovare $filenome originale becchera' quello che hai modificato perche' sara' stato sovrascritto l'originale.
    L'avevo notato... cmq con la tua modifica il ciclo vain loop perchè filenome sta gia' e non lo cambi.....
    Ho cambiato un po la struttura ma sempre lo stesso prob:

    Codice PHP:
    <?php

    define
    ("UPLOAD_DIR""./data/");

    if(isset(
    $_POST['action']) and $_POST['action'] == 'upload')
    {
        if(isset(
    $_FILES['user_file']))
        {
            
    $file $_FILES['user_file'];
            
    $filenome $file['name'];
            
            if(
    $file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
            {   
                
    $i "0";
                while(
    file_exists(UPLOAD_DIR.$filenome))
                {   
                    echo 
    "i = "$i"
    "
    ;
                    echo 
    "ciclo "$i,  "
    "
    ;
                    
    $ext explode('.'$filenome);
                    
    $filenome $ext[0].$i;
                    
    $filenome $filenome.".".$ext[1];
                    
    $file['name'] = $filenome;
                    echo 
    "filenome "$filenome"
    "
    ;
                    echo 
    "\$_FILES['nome'] "$file['name'], "
    "
    ;
                    
    $i = ++$i;
                }
                
    move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
                
    chmod(UPLOAD_DIR.$file['name'],0644);
            }
        }
    }

    ?>

  6. #6
    non capisco cosa fai/vorresti fare:

    prendi $_FILES['user_file']['name'] e lo porti in $filenome che e' una variabile.

    $file = $_FILES['user_file'];
    $filenome = $file['name'];

    poi fai un ciclo while dove questo continua finche' (file_exists(UPLOAD_DIR.$filenome) rende TRUE. cioe' sempre. Il ciclo va in loop e ci andava pure prima.

    dovresti mettere il move_uploaded_file dentro il ciclo while..... ma di fatto prendera' sempre il file che hai messo in $filenome .....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di skill83
    Registrato dal
    Mar 2002
    Messaggi
    2,024
    no non va in loop... guarda ti posto il risultato:
    Codice PHP:
    0
    ciclo 0
    filenome pera0
    .jpg
    $_FILES
    ['nome'pera0.jpg
    1
    ciclo 1
    filenome pera01
    .jpg
    $_FILES
    ['nome'pera01.jpg
    2
    ciclo 2
    filenome pera012
    .jpg
    $_FILES
    ['nome'pera012.jpg
    3
    ciclo 3
    filenome pera0123
    .jpg
    $_FILES
    ['nome'pera0123.jpg
    4
    ciclo 4
    filenome pera01234
    .jpg
    $_FILES
    ['nome'pera01234.jpg 
    quindi se uno uppa un file di nome "pera.jpg" la prima volta sara' salvato come "pera.jpg" la seconda come "pera0.jpg" la terza come "pera01.jpg" ecc...

    io voglio invece la prima volta "pera.jpg", la seconda "pera0.jpg", la terza "pera1.jpg" ecc..

    spero di essere stato chiaro, e grazie cmq dell'attenzione


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.