Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Brigatti

Upload de Arquivos (Diretório) sem Componentes

Recommended Posts

Amigos, já li vários posts a respeito de upload de arquivos sem componentes mas ainda não consegui encontrar 1 que contemple o meu problema.

É o seguinte:

Eu tenho que enviar todo o conteúdo de um diretório(somente imagens) do cliente para o servidor.

Eu consigo fazer isso utilizando o campo do tipo file, porém, sempre é necessário selecionar o arquivo manualmente.

Não achei uma forma de carregar um "value" para o "input" do tipo "file". Lí um post do Dark0 dizendo que isso é uma limitação desse tipo de campo e sua sugestão de criar um novo input do tipo "hidden" com o mesmo nome do file passando neste o value e que isso poderia ser solução para alguns problemas, acho que o meu caso caiu na excessão...

Vou colar os scripts que usei (desculpe-me o autor, mas eu perdi a referência de quem desenvolveu o scrip original).

 

No Index.asp

 

<html><head>	<title>Untitled</title></head><body><form action="upload.asp" method="post" enctype="multipart/form-data">Arquivo 1: <input type="file" name="txtArquivo1"><br>				<input type="hidden" name = "txtArquivo1" value="c:\images11021.jpg" />Arquivo 2: <input type="file" name="txtArquivo2"><br><input type="submit" name="cmdEnviar" value="Enviar"></form></body></html>
no upload.asp

 

<%@ Language=VBScript %><%Dim Contador, TamanhoDim ConteudoBinario, ConteudoTextoDim Delimitador, Posicao1, Posicao2Dim ArquivoNome, ArquivoConteudo, PastaDestinoDim objFSO, objArquivoPastaDestino = Server.MapPath("./images/")'Determina o tamanho do conteúdoTamanho = Request.TotalBytes'Obtém o conteúdo no formato binárioConteudoBinario = Request.BinaryRead(Tamanho)'Transforma o conteúdo binário em stringFor Contador = 1 To Tamanho  ConteudoTexto = ConteudoTexto & Chr(AscB(MidB(ConteudoBinario, Contador, 1)))Next 'Determina o delimitador de camposDelimitador = Left(ConteudoTexto, InStr(ConteudoTexto, vbCrLf) - 1)'Percorre a String procurando os campos'identifica os arquivo e grava no discoSet 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 ifend ifLoopSet objFSO = nothing%>
Obrigado pela atenção galera!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.