L'extension File Info

Fileinfo est un script PHP que vous pouvez utiliser dans votre application Ajax pour obtenir des informations essentielles sur un fichier sur le serveur de votre site web:

L'objet XMLHttpRequest dispose d'une fonction similaire getResponseHeader mais son fonctionnement dépend de la configuration du serveur et souvent ne retourne pas ce que vous en attendez.

Comment cela fonctionne

Le script PHP en fait contient seulement une fonction, fileinfo, avec un argument: le nom d'un fichier ou une URL.
Cette fonction fait appel aux fonctions PHP suivantes (compatibles avec toutes les versions de PHP:

Ces informations sont stockées dans un tableau avec ces clés dans l'ordre: date, size, type et ce tableau est retourné par la fonction.
Pour utiliser la fonction, on l'appelle avec un code comme celui-ci:

include_once("fileinfo.php");
$x = fileinfo("uneurl.html");
print_r($x);

Ces informations sont affichées et en même temps retournées dans un tableau.
Vous pouvez alors faire une requête POST pour appeler le script PHP avec le nom de fichier comme paramètre, et utiliser responseText pour le résultat.

Exemple de résultat:

Thu, 28 Jun 2007 19:37:18 GMT
1575
file

Voir l'extension PHP (renommée fileinfo-php.txt).

Démonstration Ajax avec la méthode HEAD

Le code source est intégrée dans cette page, et donné ci-dessous.

Résultat

Le code HTML:

<input type="text" id="filename" value="anaa-file-info.php">
<input type="button" value="Informations" onClick="submitForm('filename')">

<div id="zone"></div> 

Le code Ajax et JavaScript:

<script src="anaa.js" type="text/javascript"></script>
<script language="JavaScript">
function submitForm(id) { var url = document.getElementById(id); var xhr=AACreate(); xhr.onreadystatechange=function() { if(xhr.readyState == 4) { var h = xhr.getAllResponseHeaders(); document.getElementById("zone").innerHTML = "Headers:<br/>"; document.getElementById("zone").innerHTML += h; } }; xhr.open("HEAD", url, true); xhr.send(null); } </script>

Démonstration de file info avec Anaa en enchaînant POST et GET

Cette demo utilise le framework Anaa.

Elle utilise le script PHP fileinfo.php avec une commande Ajax POST pour passer des paramètres au script, en l'occurence l'URL d'une page sur laquelle on veut obtenir des informations. On retrouve les résultats affichés par le script de la même façon qu'on le fait avec la méthode GET, en utilisant l'attribut responseText (ou response XML).

Taper l'URL d'un fichier:

Résultat
Empty.

Code HTML:

<form method="POST" action="">
  <input type="text" id="filename" value="" size="80">
  <input type="button" value="Retrieve"  onClick="submitFormAnaa()">
</form>

<div id="storage"></div> 

Code source JavaScript

function retrieve(content)
{
  var storing = document.getElementById("storage");
  content = content.replace(/\n/, "<br>");
  storing.innerHTML = content;
}

function submitFormAnaa()
{ 
  var content = document.getElementById("filename").value;
  AAWrite("chain-fileinfo.php", "url=" + content, retrieve);
} 

Code PHP:

<?php
include_once("fileinfo.php");
$url=$_POST['url'];
fileinfo($url);
?>

Extension fileinfo.php:

function fileinfo($filename)
{
  $pagedate = date ("D, d M Y H:i:s", filemtime($filename)) . " GMT";
  $pagesize = filesize($filename);
  $pagetype = filetype($filename);
  echo  "Date: ", $pagedate."<br>";
  echo  "Size: ", $pagesize."<br>";
  echo  "Type: ", $pagetype."<br>";
}	

$url=$_POST['url']; fileinfo($url);

Le code dans cette page est simplifié par rapport au code de l'archive mais fonctionnel.

© 2007-2014 Scriptol.fr