|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Realizando upload via código sem uso de componentes de terceiros
|
 |
|
|
Postada em 8/10/2003 por ^HEAVY-METAL^
Crie uma página que contém o formulário onde existem os elementos do tio "File" como abaixo:
<html> <head> <title>Untitled</title> </head>
<body>
<form action="upload.asp" method="post" enctype="multipart/form-data"> E-mail: <input type="text" name="txtEmail"><br> Arquivo 1: <input type="file" name="txtArquivo1"><br> Arquivo 2: <input type="file" name="txtArquivo2"><br> <input type="submit" name="cmdEnviar" value="Enviar"> </form>
</body> </html>
O formulário estará chamando a página upload.asp, especificada no atributo action do elemento FORM. Segue abaixo o código da página upload.asp. <%@ Language=VBScript %> <% Dim Contador, Tamanho Dim ConteudoBinario, ConteudoTexto Dim Delimitador, Posicao1, Posicao2 Dim ArquivoNome, ArquivoConteudo, PastaDestino Dim objFSO, objArquivo
PastaDestino = Server.MapPath("/temp/upload")
'Determina o tamanho do conteúdo Tamanho = Request.TotalBytes
'Obtém o conteúdo no formato binário ConteudoBinario = Request.BinaryRead(Tamanho)
'Transforma o conteúdo binário em string For Contador = 1 To Tamanho ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1))) Next
'Determina o delimitador de campos Delimitador = Left(ConteudoTexto, InStr(ConteudoTexto, vbCrLf) - 1)
'Percorre a String procurando os campos 'identifica os arquivo e grava no disco Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitar)
do while True ArquivoNome = "" Posicao1 = InStr(Posicao1, ConteudoTexto, "filename=") if Posicao1 = 0 then exit do else 'Determina o nome do arquivo Posicao1 = Posicao1 + 10 Posicao2 = InStr(Posicao1, ConteudoTexto, """") For contador = (Posicao2 - 1) to Posicao1 step -1 if Mid(ConteudoTexto, Contador, 1) <> "\" then '" ArquivoNome = Mid(ConteudoTexto, Contador, 1) & ArquivoNome else exit for end if next 'Determina o conteúdo do arquivo Posicao1 = InStr(Posicao1, ConteudoTexto, vbCrLf & vbCrLf) + 4 Posicao2 = InStr(Posicao1, ConteudoTexto, Delimitador) - 2 ArquivoConteudo = Mid(ConteudoTexto, Posicao1, (Posicao2 - Posicao1 + 1)) 'Grava o arquivo if ArquivoNome <> "" then Set objArquivo = objFSO.CreateTextFile(PastaDestino & "\" & ArquivoNome, true) objArquivo.WriteLine ArquivoConteudo objArquivo.Close Response.write "Arquivo " & PastaDestino & "\" & _ ArquivoNome & " gravado com sucesso!<br>" Set objArquivo = nothing end if end if Loop Set objFSO = nothing %>
T+,
|
|
|
|

|