Uso do script carregado
Abaixo está um exemplo do script enviado para desenvolvimento. O arquivo de download deste artigo fornece os arquivos e o código no exemplo. Libere o arquivo compactado para um caminho e configure um caminho virtual para o seu servidor de rede. Você pode testar e iniciar o uploadform.html no navegador.
Ligue para o script
Abaixo está a maneira de chamar o método BuildUploadRequest. Primeiro, ligue para um processo completo: uploadRequest. Em seguida, ligue para o método BuiluploadRequest e, em seguida, transmita -o para a solicitação de dados binários originais na variável independente.
byteCount = request.totalbytes
Requestbin = request.binaryRead (byteCount)
Dim uploadRequest
Configurar uploadRequest = CreateObject
BuildUploadRequest RequestBin
Os dados são decompostos e armazenados no objeto de dicionário e recuperados com o método item (). Esses dados do item podem ser armazenados em variáveis VBScript e podem ser usados em qualquer lugar do código. Os dados podem ser transmitidos como uma resposta ao cliente, ou usados no código ASP, ou no arquivo e colocados no banco de dados.
Recuperar dados
Os dados do objeto UploadRequest podem estar acessíveis com a função Item ("chave"). Vamos considerar esta situação agora: acessar o valor de um controle de email. Você pode fazer isso:
email = uploadRequest.item ("email").
Como isso é um controle de texto, o conteúdo é uma string, essa string pode ser usada como qualquer outra string VBScript. Para dados binários, você pode restaurar o conteúdo no mesmo método:
PICTION = UPLOWREQUEST.Item ("Blob").
Você também pode acessar outras informações, como nome de arquivo e tipo de conteúdo. Eles são controle de texto.
ContentType = uploadRequest.item ("BLOB").
filepathname = uploadRequest.item ("BLOB").
Use dados no código VBScript
Os dados enviados podem ser usados no código VBScript, como outras variáveis. Por exemplo, eles podem enviar de volta ao cliente como resposta.
Seu email é: < % = email %>
Nome do arquivo de Young Is < % = filepathname %>
Tipo de arquivo de sua permanência é < % = contentType %>
Os dados binários também podem ser enviados de volta ao cliente. Um tipo de conteúdo deve ser definido e dados binários podem ser usados para escrever o método binário.
Response.ContentType = ContentType Response.BinaryWrite Piction
Escreva dados enviados para o arquivo
No caso do controle da classe de arquivo, o objetivo é armazenar dados binários em um domínio de arquivo ou banco de dados em vez de transmiti -los de volta ao cliente. Esse objetivo são as características inerentes ao upload de arquivos. Use o objeto do sistema de arquivos para armazenar o arquivo enviado no sistema de arquivos do servidor.
Primeiro, crie um objeto de sistema de arquivos:
'Crie filesyTemObject component scriptObject = server.createObject ("scripting.filesystemobject")
Use o objeto do sistema de arquivos para criar um arquivo no caminho. O caminho pode ser absoluto, apontando diretamente para o sistema de arquivos (como C:/temp). Também pode ser relativo, em um caminho virtual definido pelo servidor de rede. Use o método Mappath e a variável PATH_INFO Server para seguir o caminho virtual para o caminho absoluto.
O método de gravação requer uma string -byte dupla como uma variável independente; portanto, o número de bytes único é convertido em uma string. O método de gravação é responsável por converter essa sequência de byte dupla e escrevê -la no formato ASCII. Isso estabelece um conteúdo binário que contém nossa string -byte única original. Eu nomeei este arquivo "NOME DE FILHO DE ARQUIPADO". Isso é apenas para distinguir o arquivo.
'Crie e escreva em um arquivo definido myfile = scriptObject.createTextFile (server.mappath (request.servervariables_ ("path_info") & "upload" & filename)
para i = 1 a lenb (valor)
MyFile.Write Chr (ASCB (MIDB (Valor, i, 1)))
próximo
myfile.close
Inicie os dados enviados no banco de dados
Os dados também podem ser armazenados no banco de dados. O tipo de conteúdo também deve ser armazenado no banco de dados para que os dados possam ser exibidos posteriormente. Primeiro de tudo, devemos estabelecer uma conexão com o banco de dados.
Definir Conn = Server.CreateObject ("Adodb.Connection")
Conn.open "dsn = wroxdns", "user", "passa"
Em seguida, crie um conjunto de registros a partir da conexão:
Sql = "Selecione foto, contentType de mytable"
Definir rs = server.createObject
Rs.ooopen SQL, Conn, 3, 3, 3
Depois que o conjunto de registros é criado, coloque dados binários no domínio BLOB do banco de dados:
pictureChunk = imagem e chrb (0)
Rs.fields ("PICTION").
Rs.fields ("contentType") = contentType
rs.update
Conn.Close
No método ApendChunk, tenho que resolver um bug. De fato, notei que quando os dados binários têm bytes de número estranho, o método ApndendChunk não transmite o último byte. A solução é adicionar um CHR (0) para garantir que todos os bytes sejam transmitidos. Talvez haja outros métodos, se sim, por favor me diga.
Para obter o reflexo do banco de dados, use o mesmo conjunto de registros e use o tipo de conteúdo correto para enviá -lo de volta ao cliente como resposta.
Response.ContentType = Rs.Fields ("ContentType")
tamanho = rs.fields ("PICTION")
BLOB = Rs.Fields ("Piction").
Response.BinaryWrite Blob
para concluir
Este artigo mostra uma maneira completa de arquivar o arquivo no VBScript. A codificação é completamente VBScript, independentemente dos produtos de terceira parte.
Primeiro, introduza o processo de upload (usando o conteúdo "Multipart/Form-Data" para HTML). Em seguida, apresente o código VBScript enviado em detalhes. No início, uma breve revisão da função VBScript da sequência operacional e uma série de números de bytes únicos. Em seguida, introduza o código do script e a estrutura do upload dos dados.
Finalmente, vários propósitos deste script, desde o upload de variáveis no código ASP para o banco de dados ou sistemas de arquivos para armazenar arquivos de upload.
Clique no link abaixo para baixar <a href = "http://www.asptoday.com/articles/images/20000316.zip"> o código de rotina deste artigo.