La copie de code est la suivante:
<input name = "file" type = "file">
formsize = request.totalbytes
formdata = request.binaryread (formsize)
bncrlf = chrb (13) & chrb (10)
Divider = LeftB (formdata, clng (instrb (formdata, bncrlf)) - 1)
dataStart = instrb (formdata, bncrlf & bncrlf) +4
dataSen = instrb (datastart + 1, formdata, divider) -Datastart
myData = midb (formdata, dataStart, dataend)
formsize = request.totalbytes
Obtenez le nombre maximum d'octets téléchargés
--------------------------------------------------------------------------------------------------------------------------------
formdata = request.binaryread (formsize)
Obtenez des données de formulaire de formulaire du flux binaire
--------------------------------------------------------------------------------------------------------------------------------
bncrlf = chrb (13) & chrb (10)
Définir la variable de code de rupture de ligne CRLF Entrée
------------------------------
Divider = LeftB (formdata, clng (instrb (formdata, bncrlf)) - 1)
Obtenez les données d'octets à gauche du premier CRLF
instrb (formdata, bncrlf) -1 La machine vérifie que la valeur de bit de l'octet binaire de CRLF est réduite d'un, c'est-à-dire les données binaires avant les informations du bit de drapeau. Il convient de noter que l'instrb renvoie CLNG, donc l'ajout d'un CLNG ici n'est pas nécessaire
------------------------------
dataStart = instrb (formdata, bncrlf & bncrlf) +4
Obtenez les données de l'image et supprimez la position de départ des informations d'en-tête ajoutées par le formulaire de formulaire, c'est-à-dire la position de début des octets des données de fichier réel après la soumission du formulaire par votre type = fichier
La position de deux CRLFS consécutifs +4 (c'est-à-dire, la longueur d'un CRLFG)
-------------------------------
dataSen = instrb (datastart + 1, formdata, divider) -Datastart
La position de données +1 obtenue à partir de ce qui précède est utilisée comme valeur calculée de référence pour vérifier la fin des données. La détection de position commence à DataStart + 1 renvoie la position des informations d'en-tête du premier formulaire binaire, puis soustrait la position relative du datastar
--------------------------------------------------------------------------------------------------------------------------------
myData = midb (formdata, dataStart, dataend)
Midb () prend les données du bit d'étoile des données des fichiers de téléchargement obtenues par les nombreux rebondissements ci-dessus
OK ---------------> maintenant extraire proprement les données secondaires téléchargées
Note:
(1). Toutes les fonctions VB de la série * B sont traitées par des octets, et elles doivent être utilisées pour gérer les systèmes secondaires.
(2) Une fois les données de formulaire de type = fichier et type de formulaire correspondant, les informations d'en-tête correspondantes sont jointes à chaque champ de fichier.
Par conséquent, l'algorithme ci-dessus doit être utilisé pour trouver clairement les données de fichiers réelles
(3). Dans le même temps, les informations d'en-tête contient également le téléchargement de données le nom du fichier initial, tel que c: /aaa/aaa.jpg. Les données de FormData peuvent être traitées le premier nom de fichier de test des données du domaine de fichier du segment.
(4). Ces algorithmes sont dérivés des données de format fournies par la spécification HTTP "Form", donc tout algorithme de traitement est similaire!