Ir para conteúdo

POWERED BY:

Arquivado

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

meirelles

upload de arquivo usando FSO

Recommended Posts

Saudações,Gostaria que meus colunistas pudessem disponibilizar arquivos para downloads.Mas preciso que eles publiquem remotamente sem que precisem de mim.Porém não quero usar esses componentes. Quero fazer em FSO.desde já grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Taí brother

 

formulário.htm

<FORM method="post" action="upload.asp" 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" value="Enviar" name="cmdEnviar"></FORM>

upload.asp

<%@ Language=VBScript %><%	Dim Contador, Tamanho	Dim ConteudoBinario, ConteudoTexto	Dim Delimitador, Posicao1, Posicao2	Dim ArquivoNome, ArquivoConteudo, PastaDestino	Dim objFSO, objArquivo 				PastaDestino = "c:\"				'***** 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)	'***** Percore a String Procurando os Campos   *****	'***** Identifica os Arquivos e Grava no Disco *****	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")	 	Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitador)	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 "Arquvo " & PastaDestino & ArquivoNome & " gravado com sucesso!!!<BR>"				Set objArquivo = Nothing			End If		End If	Loop	Set objFSO = Nothing %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa, não entendi o código.Só quero saber como eu resgato do formulario.Ex: no formulario normal eu resgato assim: request.form("campo")como eu faço em fso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara como eu faço pra resgatar os valores dos campo q são string???por que da o seguinte erro qndo tento resgatar com request.form:Objeto Request, ASP 0206 (0x80004005)Não é possível chamar BinaryRead após usar a coleção Request.Form.q q é isso???como faço pra transformar o conteudo do text para binario e depois converter para string na hora de exibir???

Compartilhar este post


Link para o post
Compartilhar em outros sites

como está este seu trecho de codigo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou passar tudo.... e indico aonde esta com erro...

o codigo que eu fiz serve para fazer upload de uma imagem e precisa recuperar tres campos de texto...

 

<%if act = "up_ok" then	session("myemail") = request.form("myemail")	session("email") = request.form("email")	session("assunto") = request.form("assunto")	Dim Contador, Tamanho	Dim ConteudoBinario, ConteudoTexto	Dim Delimitador, Posicao1, Posicao2	Dim ArquivoNome, ArquivoConteudo, PastaDestino	Dim objFSO, objArquivo 				PastaDestino = "C:\Documents and Settings\Administrador\Meus documentos\sites\maladireta\"				'***** 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)	'***** Percore a String Procurando os Campos   *****	'***** Identifica os Arquivos e Grava no Disco *****	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")	 	Posicao1 = InStr(ConteudoTexto, Delimitador) + Len(Delimitador)	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 		   *********** AQUI VAI ENVIAR O EMAIL *****************on error resume nextset env = server.CreateObject("CDONTS.Newemail")env.to = session("email")env.from = session("myemail")env.subject = session("assunto")env.body = "<div align=center><img src=" & ArquivoNome & "></div>"env.importance = 1env.bodyformat = 0env.mailformat = 0env.sendif err.number > 0 thenresponse.write "<center><font color='red'><b>Erro no servidor</b></font></center>"else%><script>alert("Email enviado com sucesso!")window.location.href "index.asp?pagina=gerenciador&act=listar"</script><%end if				Set objArquivo = Nothing			End If		End If	Loop	Set objFSO = Nothing end if%>

 

é esse ai o codigo... ta dando erro no inicio.... aonde eu mando pros sessions os valores dos campos...

espero q posssam me ajudar.. preciso disso pra entregar amanha pra um cara... nao sei o que que eu faço...

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.