Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Domanda sugli upload

  1. #1
    Utente di HTML.it L'avatar di SoNuS
    Registrato dal
    Feb 2011
    residenza
    Puglia
    Messaggi
    71

    Domanda sugli upload

    E possibile rinominare un file caricato da un form? nel mio caso un immagine ...tipo:

    Carico un immagine di nome paesaggio.jpg

    dopo il caricamento effettuato correttamente sul server quell immagine si rinomina magari attraverso un generatore di caratteri casuali in 2hjskc.jpg (ad esempio).
    Con quale funzione è possibile fare questo lavoro?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, dove sta il problema??


    Come da esempio qui:
    http://it.php.net/manual/en/function...oaded-file.php
    Codice PHP:
    <?php
    move_uploaded_file
    ($tmp_name"$uploads_dir/$name");
    ?>
    In $_FILES hai tutti i valori del fili uplodato...
    Sei tu che decidi dove metterlo poi!

    Quindi questo "$uploads_dir/$name" e' il nome che scegli tu per il file
    Devi magari con un explode o altra funzione per immagini, ricavarti l'estensione e basta.
    Una volta trovata quello puoi decidere tu il nome.

    Il file caricato inzialmente e' $_FILES[tmp_name] e' il file originale
    $_FILES[name] il nome del file: nome.jpg magari

    Ricavi jpg dallìultimo ...

    $nuovoNOme = 'miofile';

    move_uploaded_file($_FILES['tmp_name'], "path_img/".$nuovoNOme."jpg");

  3. #3
    Utente di HTML.it L'avatar di SoNuS
    Registrato dal
    Feb 2011
    residenza
    Puglia
    Messaggi
    71
    Quindi mettiamo caso che l'utente invii un immagine di nome Paesaggio.jpg e corretto fare:

    codice:
    $name = "Paesaggio.jpg"; 
    $modifica = explode('.',$name);
    Per rinominare il nome del file si intende...

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Si potresti fare anche cosi' come scritto.

    Volendo se il nome contenesse piu' "." per non calcolare l'ultima chiave dell'array:


    $name = "Paesaggio.jpg";
    $modifica = explode('.',$name);
    $estensione = end($modifica);

    http://it.php.net/manual/en/function.end.php

  5. #5
    Utente di HTML.it L'avatar di SoNuS
    Registrato dal
    Feb 2011
    residenza
    Puglia
    Messaggi
    71
    Quindi scrivendo:

    $estensione = end($modifica);

    PHP esclude lultimo elemento dell'array?Ho capito bene? e adesso che ci penso grzie all explode si puo fare anche il filtraggio delle estenzioni tipo se e un immagine fai questo , se è un documento di testo fai questo ecc. giusto?

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    end() come da manuale ti sposta nell'array all'ultimo elemento.
    Qui ci sono le funzioni per lavorare con array http://it.php.net/manual/en/book.array.php
    Si puoi controllare l'estensione.
    Con controlli su stringhe a volte potrebbe servire il controllo con case sensitive(maiuscolo minuscolo)

    Puoi fare volendo:

    $ext = 'JPG';
    $controllo = 'jpg';
    se cosi' fosse:

    if(strtolower($ext) == strtolower($controllo))....

    giusto per sicurezza

    O comunque per non stare a fare un if esle infinito o uno switch() altrettanto lungo..

    $ext = 'jpg';
    $estensioni_possibili = array('jpg','gif','png');


    if(in_array($ext,$estensioni_possibili)){
    //trovato estensione valida
    }

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.