Méthode Request.BinaryRead
|
Synopsis
Request.BinaryRead(Compteur) |
Cette méthode renvoie le contenu binaire brut du corps d'entité d'une requête POST. Cette
méthode sert principalement lorsque la collection Request.Form est
insuffisante à manipuler les données envoyées par le client. C'est ce qui se passe lorsque l'on envoie un
fichier au serveur : en effet, l'envoi de fichier (file upload en anglais) n'est a priori
pas directement possible avec les objets standards d'ASP 3.0.
Pour envoyer des données brutes au client (i.e. écrire soi-même le corps de la réponse),
il faut utiliser la méthode BinaryWrite de l'objet Response.
Cette méthode prend un unique paramètre obligatoire.
Utilisation
Compteur indique tout d'abord le nombre d'octets à lire, mais c'est un paramètre en lecture/écriture :
avant d'exécuter la méthode BinaryRead, c'est le nombre d'octets à lire, mais une fois
l'exécution terminée, c'est le nombre d'octets effectivement lus. Ce dernier nombre doit logiquement être
inférieur ou égal à Request.TotalBytes. Request.TotalBytes indique le nombre
total d'octets de données contenu dans le corps de la requête.
Il est à noter que la méthode Request.BinaryRead renvoie des données au format binaire.
Avant de pouvoir exploiter le résultat renvoyé, il est souvent nécessaire de le convertir au format ASCII.
Conformément à la remarque du premier paragraphe, cette méthode doit préférentiellement s'utiliser
de la façon suivante, en stockant au préalable dans une variable le nombre d'octet à lire :
compteur = Request.TotalBytes
' Voire eventuellement "compteur = 4" si on veut lire
' les 4 premiers octets
contenu_binaire = Request.BinaryRead(compteur)
Response.BinaryWrite(contenu_binaire)
Ce qui donne par exemple après envoi d'un formulaire par la méthode POST :
champ1=premier+champ&champ2=second+champ (40 octets)
|
Warning: main(../include/imprimable.php) [function.main]: failed to open stream: No such file or directory in /homez.13/themanua/www2/asp/asp_request_binaryread.php3 on line 70
Warning: main() [function.include]: Failed opening '../include/imprimable.php' for inclusion (include_path='.:/usr/local/lib/php') in /homez.13/themanua/www2/asp/asp_request_binaryread.php3 on line 70
|