Artiphp - CMS open source et gratuit
Vous êtes ici » Accueil/Forum
Saisissez votre recherche
RechercherRechercher   Liste des MembresListe des Membres   S'enregistrerS'enregistrer    ProfilProfil 
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 


Petit utilitaire pour déterminer le bon type MIME

 
Poster un nouveau sujet   Répondre au sujet    Artiloo.com Index du Forum -> Artiphp 4 XXL : installation, templates...
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Lun 27 Oct 2008 10:47    Sujet du message: Petit utilitaire pour déterminer le bon type MIME Répondre en citant

Bonjour,

Voici un script pour déterminer le type MIME retourné par le serveur (rappel : le type peut être différent selon les serveurs), à placer dans outils/ ou artzone/.
Se lance avec -http://votre_site.net/chemin_artiphp/outils/tests_type_mime.php
Il faut être connecté avec un statut d'admin pour lancer ce script.
Fonctionne sous Artiphp 4 ou 5.

Créer un nouveau fichier tests_type_mime.php et y placer ce code :
Code:
<?php
if (file_exists('../artzone/arti_session.php')) {
    include('../artzone/arti_session.php');
} else {
    session_start();
}
error_reporting(0);

// Ouverture de cette page uniquement aux groupes ou statuts autorisés
// -------------------------------------------------------------------
if ($_SESSION['SESSION_ARTIGROUP'] != '1' && $_SESSION['SESSION_STATUT'] != 'artadmin') {
    header('Location: ../outils/erreur.php?ec=2');
    exit();
}

// Initialisation
// --------------
$maxsize_fichier = 102400; // taille maxi du fichier (102 400 octets = 100 Ko)
$data_ok = $meserreur = $meserreur_fichier = '';

// Traitement des données postées
// ------------------------------
if (!empty($_POST['envoi'])) {
    if (empty($_FILES['fichier']['name'])) {
        $meserreur = '<br /><span style="color:red">&nbsp; Veuillez sélectionner un fichier sur votre ordinateur !</span><br />';
    } else {
        // upload simulé du fichier
        if (!empty($_FILES['fichier']['type'])) {
            $type_fichier = $_FILES['fichier']['type'];
            $name_fichier = $_FILES['fichier']['name'];
            $tmp_name_fichier = $_FILES['fichier']['tmp_name'];
            $size_fichier = $_FILES['fichier']['size'];
            $error_fichier = $_FILES['fichier']['error'];
            if ($size_fichier > $maxsize_fichier || $error_fichier == UPLOAD_ERR_FORM_SIZE) {
                $meserreur_fichier = '<span style="color:red">' . $name_fichier . ' a une taille supérieure à ' . $maxsize_fichier . ' octets.</span><br />';
            }
            $tab_type = split('/', $type_fichier);
            $type = $tab_type[1];

            $data_ok = '<br />
<div style="color:green; font_weight:bold;">
    <ul>
        <li>Nom du fichier : ' . $name_fichier . '</li>
        <li>Nom temporaire : ' . $tmp_name_fichier . '</li>
        <li>Taille         : ' . $size_fichier . ' octets</li>
        <li>Type MIME      : ' . $type_fichier . '</li>
    </ul>
    Dans Artiphp, dans la grande majorité des cas, seule la partie après le / est utilisée dans les scripts.<br />
    Il faut donc ajouter le type autorisé dans le script concerné sous cette forme :<br />
    <p style="color:black; text-indent:20px;">' . $type . '</p>
</div>
';
        } else {
            $meserreur_fichier = '<span style="color:red">Un problème d\'origine inconnue est survenu.<br />Il est possible que le fichier sélectionné ait une taille supérieure à celle autorisée (' . $maxsize_fichier . ' octets).</span><br />';
        }
    }
}

// Mise en page
// ------------
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>Déterminer le type MIME d'un fichier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="robots" content="noindex,nofollow" />
</head>
<body>

<form method="post" action="tests_type_mime.php" enctype="multipart/form-data">
    <p>
        <fieldset>
        <legend><strong>Déterminer le type MIME d'un fichier</strong></legend>
            <br /><label for="fichier">Sélectionner un fichier local sur votre ordinateur</label>
            <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxsize_fichier; ?>" />
            <input id="fichier" name="fichier" type="file" size="80" value="" />
        </fieldset>
    </p>
    <input type="submit" name="envoi" value="Tester" />
</form>

<?php echo $data_ok . $meserreur . $meserreur_fichier; ?>

</body>
</html>


Une fois le type MIME déterminé, il suffit de l'ajouter dans la liste des types autorisés.
Exemple si le type MIME est : x-jpeg
l'ajouter à ceci :
Code:
    if ($typeImage != "pjpeg" && $typeImage != "jpeg" && $typeImage != "gif" && $typeImage != "x-png" && $typeImage != "png") {

ce qui donne :
Code:
    if ($typeImage != "pjpeg" && $typeImage != "x-jpeg" && $typeImage != "jpeg" && $typeImage != "gif" && $typeImage != "x-png" && $typeImage != "png") {



jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Artiloo.com Index du Forum -> Artiphp 4 XXL : installation, templates... Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com