begin process at 2012 05 27 19:57:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > DUMP DÉCIMAL ET HEXADÉCIMAL D'UN FICHIER ($_FILES)

DUMP DÉCIMAL ET HEXADÉCIMAL D'UN FICHIER ($_FILES)


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :dump, fichier, files, hexadécimal Niveau :Débutant Date de création :09/02/2005 Date de mise à jour :17/12/2005 14:57:45 Vu :6 109

Auteur : grandvizir

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

C'est l'occasion de jouer avec la variable superglobale $_FILES.

A défaut d'avoir un éditeur hexadécimal sous la main, autant l'avoir en ligne... ;)

Testé sous Apache 1.3.27, PHP 4.3.3, Windows.

NOTES:
1) Il est conseillé d'avoir un time-out PHP infini (=0)
2) Un fichier trop lourd fait ramer la machine
3) Le fichier suivant doit s'appeller "dump.php"

Source

  • <html>
  • <title>Dumper hexadécimal</title>
  • <body>
  • <?php
  • function SetStringLength($Value, $Len) {
  • if (strlen($Value)<$Len)
  • while (strlen($Value)!=$Len)
  • $Value = '0'.$Value;
  • return $Value;
  • }
  • function GetPost($key) {
  • $rsl = '';
  • if (isset($_POST[$key])) {
  • $rsl = $_POST[$key];
  • }
  • return $rsl;
  • }
  • if (!isset($_FILES['FileName'])) {
  • ?>
  • <form name="FileSender" action="dump.php" method="post" ENCTYPE="multipart/form-data">
  • Choisir le fichier (taille limitée à 256 ko)
  • <br><input type="file" name="FileName">
  • <br><input type="radio" name="mode" value="full" checked> Complet
  • <br><input type="radio" name="mode" value="short"> Concis
  • <br><input type="submit" name="butSend" value="Envoyer">
  • </form>
  • <?php
  • } else {
  • $Fln = $_FILES['FileName'];
  • $FullMode = (strtolower(GetPost('mode'))=='full');
  • //VERIFICATION DES ERREURS ET DES CONDITIONS DE BONNE UTILISATION
  • if ($Fln['size']>262144) { //256 ko
  • echo '<b>ERREUR:</b> la taille du fichier dépasse la limite autorisée';
  • return 0;
  • }
  • if (!file_exists($Fln['tmp_name'])) { //256 ko
  • echo '<b>ERREUR:</b> le fichier n\'existe pas';
  • return 0;
  • }
  • if ($Fln['error']!=0) {
  • echo '<b>ERREUR:</b> une erreur inconnue s\'est produite';
  • return 0;
  • }
  • //OUVERTURE DU FICHIER
  • $Hex='';
  • $Dec='';
  • $Char='';
  • $CharPerLine = 16;
  • $Offset = 0;
  • echo '<p><a href="dump.php">Retour</a></p>';
  • echo '<font size=+3>Dump du fichier "'.$Fln['name'].'"</font><br> ';
  • echo '<font face="Courier New">';
  • echo '<table cols=3 width="100%">';
  • $fichier = fopen($Fln['tmp_name'], 'r');
  • fseek($fichier, 0);
  • for ($i=1 ; $i<=$Fln['size'] ; $i++) {
  • $c = fgetc($fichier);
  • if ($Hex!='') {
  • if ($FullMode) $Hex .= '  ';
  • else $Hex .= ' ';
  • }
  • $Hex .= SetStringLength(strtoupper(dechex(ord($c))),2);
  • if ($Dec!='') { $Dec .= ' '; }
  • $Dec .= SetStringLength(ord($c),3);
  • if (ord($c)<32) { $c='<span style="BACKGROUND-COLOR: #F0F0F0"> </span>'; }
  • else { $c = htmlentities($c); }
  • $Char .= $c;
  • if (($i % $CharPerLine==0) || ($i==$Fln['size'])) {
  • if ($FullMode) {
  • echo '<tr>';
  • echo '<td><font color=maroon size=-1>#'.SetStringLength(dechex($Offset),8).'</font></td>';
  • echo '<td><font color=navy size=-1>'.$Hex.'<br>'.$Dec.'</font></td>';
  • echo '<td><font color=purple size=-1>'.$Char.'</font></td>';
  • echo '</tr>';
  • } else {
  • echo $Hex.'<br>';
  • }
  • $Hex='';
  • $Dec='';
  • $Char='';
  • $Offset += $CharPerLine;
  • }
  • }
  • fclose($fichier);
  • echo '</table>';
  • echo '</font>';
  • }
  • ?>
  • </body>
  • </html>
<html>
<title>Dumper hexadécimal</title>
<body>
  <?php

    function SetStringLength($Value, $Len) {
      if (strlen($Value)<$Len)
        while (strlen($Value)!=$Len)
          $Value = '0'.$Value;
      return $Value;
    }

    function GetPost($key) {
      $rsl = '';
      if (isset($_POST[$key])) {
        $rsl = $_POST[$key];
      }
      return $rsl;
    }

    if (!isset($_FILES['FileName'])) {
  ?>

    <form name="FileSender" action="dump.php" method="post" ENCTYPE="multipart/form-data">
      Choisir le fichier (taille limitée à 256 ko)
      <br><input type="file" name="FileName">
      <br><input type="radio" name="mode" value="full" checked> Complet
      <br><input type="radio" name="mode" value="short"> Concis
      <br><input type="submit" name="butSend" value="Envoyer">
    </form>

  <?php
    } else {
      $Fln = $_FILES['FileName'];
      $FullMode = (strtolower(GetPost('mode'))=='full');

    //VERIFICATION DES ERREURS ET DES CONDITIONS DE BONNE UTILISATION
      if ($Fln['size']>262144) { //256 ko
        echo '<b>ERREUR:</b> la taille du fichier dépasse la limite autorisée';
        return 0;
      }
      if (!file_exists($Fln['tmp_name'])) { //256 ko
        echo '<b>ERREUR:</b> le fichier n\'existe pas';
        return 0;
      }
      if ($Fln['error']!=0) {
        echo '<b>ERREUR:</b> une erreur inconnue s\'est produite';
        return 0;
      }

    //OUVERTURE DU FICHIER
      $Hex='';
      $Dec='';
      $Char='';
      $CharPerLine = 16;
      $Offset = 0;
      echo '<p><a href="dump.php">Retour</a></p>';
      echo '<font size=+3>Dump du fichier "'.$Fln['name'].'"</font><br> ';
      echo '<font face="Courier New">';
      echo '<table cols=3 width="100%">';
      $fichier = fopen($Fln['tmp_name'], 'r');
      fseek($fichier, 0);
      for ($i=1 ; $i<=$Fln['size'] ; $i++) {
        $c = fgetc($fichier);

        if ($Hex!='') {
          if ($FullMode) $Hex .= '  ';
          else $Hex .= ' ';
        }
        $Hex .= SetStringLength(strtoupper(dechex(ord($c))),2);

        if ($Dec!='') { $Dec .= ' '; }
        $Dec .= SetStringLength(ord($c),3);

        if (ord($c)<32) { $c='<span style="BACKGROUND-COLOR: #F0F0F0"> </span>'; }
        else { $c = htmlentities($c); }
        $Char .= $c;

        if (($i % $CharPerLine==0) || ($i==$Fln['size'])) {
          if ($FullMode) {
            echo '<tr>';
            echo '<td><font color=maroon size=-1>#'.SetStringLength(dechex($Offset),8).'</font></td>';
            echo '<td><font color=navy size=-1>'.$Hex.'<br>'.$Dec.'</font></td>';
            echo '<td><font color=purple size=-1>'.$Char.'</font></td>';
            echo '</tr>';
          } else {
            echo $Hex.'<br>';
          }
          $Hex='';
          $Dec='';
          $Char='';
          $Offset += $CharPerLine;
        }
      }
      fclose($fichier);
      echo '</table>';
      echo '</font>';
    }
  ?>
</body>
</html>

 Conclusion

Vous pouvez toujours aller visiter http://altert.family.free.fr/


 Historique

10 février 2005 15:23:09 :
Ajout d'une précision sur le nom du fichier
05 mars 2005 11:19:00 :
J'ai rajouté un mode qui fait un dump plus concis et donc plus facilement réutilisable
17 décembre 2005 14:57:45 :
- Mise à jour des mots clé

 Sources du même auteur

Source avec Zip JEU DU MORPION INTELLIGENT: HUMAIN VERSUS PHP
Source avec Zip PROTÉGER LE TÉLÉCHARGEMENT DES FICHIERS ZIP
Source avec Zip GÉRER DES FICHIERS DE CONFIGURATION INI [POO]
Source avec Zip GÉRER DES LISTES AVEC TSTRINGLIST [POO]
EXTENSIONS CHARGÉES SUR UN SERVEUR

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

 Sources en rapport avec celle ci

CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
DUMP SQL AVEC SÉLECTION AUTOMATIQUE DES TABLES par theptitprince
Source avec Zip Source avec une capture A-ANNONCES VERSION PHP 5 par cod57

Commentaires et avis

Commentaire de dede38440 le 11/10/2011 23:23:43 10/10

Très bien conçu, merci ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Astuce du jour 04/12/2002 [ par SmallToad ] Aujourd'hui, l'astuce du jour est l'utilisation de $_FILES qui est fort utile. Il sert à récupérer des information sur le fichier $fichier qu'il a upl Lister un répertoire (de manière ordonnée) [ par faiseurdesonges ] Bonjour, voila j'aimerais lister un répertoire de manière ordonnée, à savoir tout les fichiers du dossier principale puis le premier sous dossier suiv upload +insert bdd :( [ par ksinteractive ] bonjour et merci d'avance :)jai fais une petite admin avec insertion d'une fiche avec le nom du modele et un champ upload pour uploader une image qui Stress avec code pour upload image .. :) [ par Hash2o ] Voila .. un script qui fctionne bien, mais qui donne des stress lors de la mise en place de l'image sur le serveur. A la place de donné le nom du fich pb d 'upload de fichier [ par trabice ] Bonjour,voila j'execute le script suivant :&lt;?echo $_FILES['fichier_choisi']['name']."&lt;br&gt;";echo $_FILES['fichier_choisi']['tmp_name']."&lt;br Décompresser un zip [ par MadM@tt ] Salut &#224; tous, Voil&#224; dans une de mes pages l'utilisateur envoie un fichier que je t&#233;l&#233;charge sur le serveur, mais ils'agit d'un fic upload et chemin d'accès [ par skmancuso ] Bonjour,Je suis en train d'écrire un formulaire qui propose diverses choses notemment la possibilité de browser le disque pour "uploader" un fichier q Enregistrer dans mysql upload fichier [ par jeiragne ] Bonjour et merci de me répondre,j'essaye d'enregistrer un .doc (fichier word) dans un champ blob de mysql mais le problème est que je ne sais pas où e pb chargement de fichier avec move_upload_files [ par niluje ] Saluté :)J'ai un pb avec la fonction move_upload_files(), en effet, je charge des fichiers et certains ne sont pas déplacés (et je n'ai pas de message lister des fichier dans un dossier [ par Lucyberad ] bonjour a tous ! j'ai un script qui me permet de lister les fichiers, que voici: $rep = "/images";&nbsp; // chemin du dossier image $files = array();


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales