Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Determinare il tipo di file in una form di upload

    Buongiorno a tutti,
    c'è modo di determinare il tipo di un file uploadato tramite una form (se è un documento Word, un PDF, un'immagine, un eseguibile...), INDIPENDENTEMENTE dall'estensione?
    Kisses,

    Nat

  2. #2
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Se non vuoi controllare l estensione puoi usare il MIME type (qui ce un elenco http://www.utoronto.ca/webdocs/HTMLd.../mimetype.html), con $_FILES['nomefile']['type'], ma anche questo modo non sempre da risultati certi.

    Un modo + sicuro è aprire il file con fopen() e controllarne i byte di intestazione, essendo ogni tipo di file strutturato in modo diverso dovresti crearti una funzione ad hoc, non so esista gia' qualcosa del genere pronto..

  3. #3
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Sì, ti posso confermare che con l'array $_FILES non risolvo, per esempio, questo problema: ho il file "FormattaMacchina.exe", lo rinomino in "AnnaKournikova.gif", da $_FILES['file']['type'] ricavo "image/gif".
    Altre idee, anche con fopen()?

  4. #4
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Ma tu vorresti sapere il tipo di file qualunque esso sia, o ti interessa solo un numero ristretto?

  5. #5
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Mmmm.... ho fatto un pò di prove.
    In effetti, la cosa migliore da fare è:

    a) determinare quali tipi di file accettare
    b) creare una cartella protetta del web server in cui inserire un "esemplare" per ogni tipo accettato
    c) con un semplice ciclo, ricavare le "firme" (ad es. i primi 16 byte) di tutti i tipi accettati, ed immagazzinarle in una tabella di database
    d) ad ogni upload di file, fare fopen($_FILES['file']['tmp_name'], 16) e verificare se è presente nella tabella

    Non sarà perfetto, ma insomma

  6. #6
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Cmq nn devi preoccuparti se qualcuno rinomina un exe in un jpg, tanto quel file sara' trattato come un jpg e nn visualizzera' nulla, gli upload funzionano cosi', ho fatto moltissimi siti con gli ulpoad e nn ce mai stato nessun problema.


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.