Extraia a descrição do código dos dados secundários carregados por meio do formulário upload request.totalbytes como um arquivo binário.
Copie o código do código da seguinte forma:
<input type="arquivo">
tamanho do formulário = solicitação.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divisor=esquerdaB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divisor)-datastart
meusdados=midb(formdata,datastart,dataend)
tamanho do formulário = solicitação.totalbytes
Obtenha o número máximo de bytes carregados
-----------------------
formdata=request.binaryread(formsize)
Obtenha dados de formulário do fluxo binário
-----------------------
bncrlf=chrB(13) & chrB(10)
Definir retorno de carro crlf e variável de código de alimentação de linha
----------------------------------
divisor=esquerdaB(formdata,clng(instrb(formdata,bncrlf))-1)
Obtenha os dados de byte à esquerda do primeiro crlf
instrb(formdata,bncrlf)-1 A máquina verifica se o valor do bit do byte binário crlf é menos um, que é o dado binário antes da informação do sinalizador. Deve-se notar que instrb retorna clng, então um clng é adicionado aqui. redundante
----------------------------------
datastart=instrb(formdata,bncrlf & bncrlf)+4
Obtenha os dados da imagem e remova a posição inicial das informações do cabeçalho adicionadas pelo formulário, que é a posição inicial do byte dos dados reais do arquivo após seu type=file ser enviado no formulário.
A posição de dois crlfs consecutivos + 4 (ou seja, o comprimento de dois crlfg)
----------------------------------
dataend=instrb(datastart+1,formdata,divisor)-datastart
A posição dos dados + 1 obtida acima é usada como um valor de cálculo de referência para verificar o final dos dados. A posição da primeira informação do cabeçalho do delimitador de forma binária é retornada na posição começando em datastart + 1 e, em seguida, a posição relativa. de datastar é subtraído.
----------------------------
meusdados=midb(formdata,datastart,dataend)
midb() assume o formato de bit final em estrela dos dados do arquivo carregado, obtidos através de muitas reviravoltas.
ok --------------> Agora extraia de forma limpa os dados secundários carregados
Observação:
(1). Todas as funções VB da série *B são processadas por bytes. Elas devem ser usadas para processar sistemas secundários.
(2) Após o envio de .type=file e os dados do tipo de formulário correspondente, as informações de cabeçalho correspondentes são anexadas a cada campo do arquivo.
Portanto, o algoritmo acima deve ser usado para encontrar claramente os dados reais do arquivo.
(3). Ao mesmo tempo, as informações do cabeçalho também contêm os dados do nome do arquivo inicial carregado, como c:/aaa/aaa.jpg Os dados do formulário podem ser processados da mesma forma para extrair o nome do arquivo preliminar. dos dados do domínio do arquivo.
(4).Esses algoritmos são derivados dos dados de formato fornecidos pela especificação do "formulário" http, portanto, os algoritmos de processamento de qualquer empresa são semelhantes!