Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Ho sbagliato a scrivere ho messo fopen perchè stavo scrivendo uno script e mi sn imbrogliato
    Volevo dire
    Codice PHP:
    $nome_sicuro $nome_sicuro "." $estensione
    non fopen

    se metti un file del genere pippo.ripippo.hai.jpg
    succede che diventa

    pipporipippohaijpg.jpg

    @tato, come suggerisci tu se mettiamo un file di nome

    prova.gif.php
    l'estensione presa in considerazione è gif e si frega il sistema

  2. #12
    solo per individuare il tipo di file al momento uso questo...
    ... ovviamente ho lasciato solo i tipi di file che mi possono interessare, ma se avete bisogno aggiungete pure
    Codice PHP:
    public function getMIMEType($name)
        {
                
    preg_match('/\.(.*?)$/'$name$m);    # Get File extension for a better match
                
    switch(strtolower($m[1])){
                    case 
    'js': return 'application/javascript';
                    case 
    'json': return 'application/json';
                    case 
    'jpg': case 'jpeg': case 'jpe': return 'image/jpg';
                    case 
    'png': case 'gif': case 'bmp': return 'image/'.strtolower($m[1]);
                    case 
    'css': return 'text/css';
                    case 
    'xml': return 'application/xml';
                    case 
    'html': case 'htm': case 'php': return 'text/html';
                    case 
    'xsl': return 'application/xsl+xml';
                    case 
    'xslt': return 'application/xslt-xml';
                    case 
    'xsd': return 'application/xsd+xml';
                    case 
    'zip': return 'application/zip';
                    case 
    'swf': return 'application/x-shockwave-flash';
                    case 
    'pdf': return 'application/pdf';
                    case 
    'doc': return 'application/msword';
                    case 
    'rtf': return 'application/rtf';
                    case 
    'ppt': return 'application/vnd.ms-powerpoint';
                    case 
    'm3u': return 'audio/x-mpegurl';
                    case 
    'mov': case 'qt': return 'video/quicktime';
                    case 
    'xls': case 'xlt': return 'application/vnd.ms-excel';
                    case 
    'mp2': case 'mpa': case 'mpe': case 'mpeg': case 'mpg': case 'mpv2': return 'application/vnd.ms-excel';
                    default:
                        if(
    function_exists('mime_content_type')){ # if mime_content_type exists use it.
                           
    $m mime_content_type($name);
                        }else if(
    function_exists('')){    # if Pecl installed use it
                           
    $finfo finfo_open(FILEINFO_MIME);
                           
    $m finfo_file($finfo$name);
                           
    finfo_close($finfo);
                        }else{    
    # if nothing left try shell
                           
    if(strstr($_SERVER[HTTP_USER_AGENT], 'Windows')){ # Nothing to do on windows
                           
    return ''# Blank mime display most files correctly especially images.
                           
    }
                           if(
    strstr($_SERVER[HTTP_USER_AGENT], 'Macintosh')){ # Correct output on macs
                           
    $m trim(exec('file -b --mime '.escapeshellarg($name)));
                           }else{    
    # Regular unix systems
                           
    $m trim(exec('file -bi '.escapeshellarg($name)));
                           }
                        }
                        
    $m split(';'$m);
                       
    $this->type trim($m[0]);
                 }
        } 
    preso da un commento su php.net e modificato mi pare... fa parte della classe file del framework che sto scrivendo

    potete decidere se dare più peso all'estensione o al mime type e modificarlo di conseguenza
    ( in effetti in caso di upload forse è meglio controllare prima il mime e poi vedere se coincide con l'estensione... boh fate vobis )

  3. #13
    Ma hai provato almeno

    Codice PHP:
    print_r(explode(".""prova.gif.php"2)); 
    Risultato:
    Codice PHP:
    Array
    (
        [
    0] => prova
        
    [1] => gif.php


  4. #14
    Originariamente inviato da flash.tato
    Ciao C0r3

    Modifica explode in questo modo:
    Codice PHP:
    $parti explode"."$nome_file); 
    e in $parti[0] hai il nome del file
    in $parti[1] l'estensione
    Codice PHP:
    function getExtension($fileName){
            return 
    strrchr($fileName,'.');
    }
    echo 
    getExtension('pippo.rippo.quanti.pippo.chevuoi.gif'); 
    che è meglio

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #15
    E se devo ottenere il nome del file?

    In questo caso meglio usare la strrpos che ti ritorna l'indice dell'ultima occorenza di una stringa e poi usare la substr.

  6. #16
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    Ciao, sto usando lo stesso controllo per caricare file pdf:

    $allowed_types = array("application/pdf");
    if (!in_array($_FILES["upfile"]["type"],$allowed_types)):
    .....

    non funziona, quindi ho provato a vedere cosa c'è in $_FILES e mi da: application/save
    Ubuntu 10.10 x86_64

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.