• Bannato User Attivo

    Da 2 var crearne una composta dalle due

    Mi sto sc-ervellando per far funzionare l'upload delle immagini dal pc di un utente sullo spazio di un nuovo sitozzo che voglio fare.

    Per prender confidenza con la questione ho iniziato con il fare l'upload di una foto... e dopo molto ci sono riuscito.

    Esso permette di cambiare il nome del file che viene uploaddato. Molto utile per evitare che file con lo stesso nome siano sovrascritti o che siano caricati file con nomi "strani" (poi il nome del file me lo devo registrare sul DB).

    Ecco, per una foto sola il codice per cambiare il nome è questo:

    // Eventuale nuovo nome da dare al file uploadato
    $new_name = "nomenuovo.jpg";
    Ma io voglio che il nome cambi dinamicamente.
    Quindi ho pensato di generare due numeretti, uno che è il numero di secondi trascorso dal 1970 $nnow ed uno che è un numero random $nrandom.

    Se due foto sono caricate nello stesso secondo ho buone probabilità che prendano un nome diverso se il nome finale della foto è dato dalla composizione dei due.
    Io lo vorrei nodificare in questo modo:

    // Eventuale nuovo nome da dare al file uploadato
    $nnow = time();
    $nrandom = rand(1000, 9999);
    $new_name = "COME FACCIO???";

    Come faccio a fare in modo che $new_name sia pari a $nrandom-$nnow.jpg

    Se scrvio
    $new_name = "$nrandom-$nnow.jpg";

    non mi funziona e mi da errori. Il mio è un problema i sintassi che non riesco a risolvere.

    E POI...

    Quando si tratta di caricare più foto contemporaneamente mi trovo il seguenta codice:

    foreach ($_FILES["upfile"]["error"] as $key => $error) {
       if ($error == UPLOAD_ERR_OK) {
           $tmp_name = $_FILES["upfile"]["tmp_name"][$key];
           [b]$name = $_FILES["upfile"]["name"][$key];[/b]
           move_uploaded_file($tmp_name, "upload/$name");
       }
    }
    

    Come lo posso modificare per fare in modo che il nome random sia dato ad ogni singola foto?
    La introduzione di quel [$key] mi ha sconvolto 😮

    Grazie a tutti i phpmaniacs 😄


  • Super User

    Il $key è una variabile generata automaticamente dal ciclo foreach, e prende il nome della chiave dell'array immesso. Per quanto riguarda la sottrazione, basta che fai così:

    $new_name = $nrandom-$nnow.'.jpg';
    ed è fatta 😄


  • Bannato User Attivo

    Visto che l'ho risolto, e visto che siamo in un bel forum, post oqui la soluzione.
    Premetto che io non volevo fare una soluzione ma creare un nome da dare a dei files caricati sul server composti dal numero della data (linea) numero random .jpg

    ho fatto così:

    $nnow = time();
    	   $nrandom = rand(100000000, 999999999);
    	   $name = "".$nnow."-".$nrandom."-ski.jpg";
    

    Buona vita a tutti.


  • Super User

    @fabioski said:

    Visto che l'ho risolto, e visto che siamo in un bel forum, post oqui la soluzione.
    Premetto che io non volevo fare una soluzione ma creare un nome da dare a dei files caricati sul server composti dal numero della data (linea) numero random .jpg

    ho fatto così:

    $nnow = time();
    	   $nrandom = rand(100000000, 999999999);
    	   $name = "".$nnow."-".$nrandom."-ski.jpg";
    

    Buona vita a tutti.Mi sembrava volessi fare una sottrazione 😄


  • User

    Senza scervellarsi troppo con i puntini...

    $name = "$nnow-$nrandom-ski.jpg";

    Ciauz,
    Dean