Categorias

Fazer upload de arquivos sem uso de componentes

Sem dúvida, a grande maioria das aplicação web, precisará realizar Uploads de arquivos para o servidor. Em muitos dos casos, os desenvolvedores optam por utilizar componentes pagos que realizam esta tarefa.

Com este código é possível realizar o Upload do arquivo, da máquina do cliente para o servidor web sem a necessidade de um componente especial para isso.

O único componente requerido, mas que já é padrão nos servidores IIS que rodam ASP é o FileSystemObject.




	Upload sem componente




E-mail:
Arquivo 1:
Arquivo 2:
<%@ 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!
" Set objArquivo = nothing end if end if Loop Set objFSO = nothing %>