Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    rinominare file uploadato

    salve, ho un form per fare l'upload dei files

    vorrei che una volta fatto l'upload (o comunque durante l'upload, prima che questo venga scritto sul server) il nome del file venisse rinominato in un certo modo, ad esempio se mi viene caricato un file con il nome

    tizio_caio_sempronio_etuttiglialtri.jpg

    che mi venisse rinominato in

    tizio_caio_sempronio_xxxxyyzz.jpg

    cioè che il nome del file sia così composto

    primi 20 caratteri = nome del file originale
    caratterei successivi, caratteri inseriti da me
    estensione.

    ho trovato + o - il modo per prendere l'estensione e tirarla fuori come stringa, ma non so come dirgli "parti dalla fine del nome senza l'estensione ed aggiungi questi caratteri che ti do io al nome"....

    potete aiutarmi ?

  2. #2
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    puoi usare

    $arrayNome= explode(".",$nome)
    cosi dividi la stringa in due, mettendo in prima posizione il nome e nella seconda l'estensione.

    $nuovoNome= $arrayNome[0].="xxxx.".$arrayNome[1];
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  3. #3
    dove arraynome 0 è il nome del file e arraynome 1 è l'estensione giusto ?

    ti ringrazio

  4. #4
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    sì.

    xxx poi può essere anche una funzione che arbitrariamente ti elabora quello che vuoi e te lo restituisce con un return... ovviamente va aggiunto il punto prima dell'estensione nel concatenamento, perché lo stesso punto viene rimosso nel momento di splittare il nome file in due parti.

    ...Tuttavia... se io faccio l'upoload di un file file.dile.jpg
    concentrati su questo possibile problema
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  5. #5
    ...Tuttavia... se io faccio l'upoload di un file file.dile.jpg
    per questo problema basta contare gli array con count() e sai che il totale corrisponde all'estensione (essendo l'ultimo array)

  6. #6
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    Originariamente inviato da funnylux
    per questo problema basta contare gli array con count() e sai che il totale corrisponde all'estensione (essendo l'ultimo array)
    skiaff doveva dirlo tizyjayd
    scherzo... comunue non è solo quello funny, se vuoi conservare il primo e secondo valore etc dell'array, devi iterare il tutto, escluso l'ultimo valore che contiene l'estensione (iterare fino a count($array)-1).
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  7. #7
    Non avete considerato il limite di 20 caratteri. Versione con il limite, e che ignora eventuali "finte estensioni":

    Codice PHP:
    $orig "tizio_caio_sempronio_etuttiglialtri.jpg";

    preg_match("/^(.{0,20}).*(\.[^.]+)$/"$orig$result);

    $new $result[1] . "xxxyyyzzz";
    $ext $result[2];

    $final $new $ext;
    echo 
    $final
    Mi piacciono le regexp

  8. #8
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    io non le uso fino a che non ho alternative (meno performanti), ad esempio il limite dei 20 caratteri lo bypasserei semplicemente con substr(0,20).
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

  9. #9
    Scusa devi usare un ciclo perche' non sai quanti elementi ha l'array splittato, in piu' devi usare un'altra funzione (substr) e dici che una regexp e' meno performante?

  10. #10
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    il tuo codice non è corretto.
    rimuove tutti i punti e si mangia anche il primo carattere dell'estensione
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

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.