La copia del código es la siguiente:
<input name = "file" type = "file">
formsize = request.totalbytes
formdata = request.binaryRead (FormSize)
bncrlf = CHRB (13) y CHRB (10)
divisor = LeftB (FormData, CLNG (InstrB (FormData, Bncrlf))-1)
DataStart = InstrB (FormData, Bncrlf y Bncrlf) +4
dataend = InstrB (DataStart+1, FormData, Divider) -DataStart
myData = MidB (FormData, DataStart, Dataend)
formsize = request.totalbytes
Obtenga el número máximo de bytes cargados
----------------------------------------------------------------------------------------------------------------------------
formdata = request.binaryRead (FormSize)
Obtenga datos de formulario de la transmisión binaria
----------------------------------------------------------------------------------------------------------------------------
bncrlf = CHRB (13) y CHRB (10)
Establecer CRLF Ingrese la variable del código de ruptura de línea
------------------------------
divisor = LeftB (FormData, CLNG (InstrB (FormData, Bncrlf))-1)
Obtenga los datos de byte a la izquierda del primer CRLF
InstrB (FormData, Bncrlf) -1 La máquina verifica que el valor de bits del byte binario de CRLF se reduce con uno, es decir, los datos binarios antes de la información de bits de bandera. Cabe señalar que InstrB devuelve CLNG, por lo que agregar un CLNG aquí es innecesario
------------------------------
DataStart = InstrB (FormData, Bncrlf y Bncrlf) +4
Obtenga los datos de la imagen y elimine la posición de inicio de la información del encabezado agregada por el formulario del formulario, es decir, la posición de inicio de los bytes de los datos del archivo real después de que el formulario se envíe por su tipo = archivo
La posición de dos CRLFS consecutivos +4 (es decir, la longitud de un CRLFG)
-------------------------------
dataend = InstrB (DataStart+1, FormData, Divider) -DataStart
La posición de datos +1 obtenida de lo anterior se usa como el valor calculado de referencia para verificar el final de los datos. La detección de posición comienza en DataStart+1 devuelve la posición de la primera información de encabezado del separador de formulario binario, y luego resta la posición relativa del DataStar
----------------------------------------------------------------------------------------------------------------------------
myData = MidB (FormData, DataStart, Dataend)
MidB () toma los datos de bit de extremo de Star de los datos del archivo de carga obtenidos por los anteriores muchos giros y vueltas
OK ---------------> ahora extrae limpiamente los datos secundarios cargados
Nota:
(1). Todas las funciones VB de la serie *B son procesadas por bytes, y deben usarse para manejar los sistemas secundarios.
(2) Después de enviar los datos del formulario de tipo = archivo y el tipo de formulario correspondiente, la información del encabezado correspondiente se adjunta a cada campo de archivo.
Por lo tanto, el algoritmo anterior debe usarse para encontrar claramente los datos del archivo real
(3). Al mismo tiempo, la información del encabezado también contiene datos de carga del nombre del archivo inicial, como c: /aaa/aaa.jpg. Los datos de FormData se pueden procesar el primer nombre de archivo de prueba de los datos del dominio del archivo del segmento.
(4). Estos algoritmos se derivan de los datos de formato proporcionados por la especificación de "formulario" HTTP, por lo que cualquier algoritmo de procesamiento es similar.