Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Upload de varios arquivos de uma vez só

Recommended Posts

Estou implantando um script para fazer upload de varios scripts de uma vez só para a pasta e BD, para a pasta ele esta enviando corretamente mas para o bd ele esta fazendo o upload errado, acredito pq a variavel definida não esta sendo corretamente interpretada pelo script, mas não consegui achar uma forma de setar uma variavel para o script

 

Código

 

<%Dim Contador, TamanhoDim ConteudoBinario, ConteudoTextoDim Delimitador, Posicao1, Posicao2Dim Arquivofoto, ArquivoConteudo, PastaDestinoDim objFSO, objArquivoPastaDestino = Server.MapPath("/imobiliaria/imagens/imoveis")'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  Arquivofoto = ""  Posicao1 = InStr(Posicao1, ConteudoTexto, "filename=")  if Posicao1 = 0 then	exit do  else   'Determina o foto do arquivo   Posicao1 = Posicao1 + 10   Posicao2 = InStr(Posicao1, ConteudoTexto, """")   For contador = (Posicao2 - 1) to Posicao1 step -1	if Mid(ConteudoTexto, Contador, 1) <> "\" then '"	  Arquivofoto = Mid(ConteudoTexto, Contador, 1) & Arquivofoto	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 Arquivofoto <> "" then	 Set objArquivo = objFSO.CreateTextFile(PastaDestino & "\" & Arquivofoto, true)	 objArquivo.WriteLine ArquivoConteudo	 objArquivo.Close				 Response.write "Arquivo " & PastaDestino & "\" & _	 Arquivofoto & " gravado com sucesso!<br>"	 ref = request.QueryString("ref")foto1 = Arquivofotofoto2 = Arquivofotofoto3 = Arquivofotofoto4 = Arquivofotofoto5 = Arquivofotofoto6 = Arquivofotofoto7 = Arquivofotofoto8 = Arquivofoto	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open = "INSERT INTO foto (idImovel,foto1,foto2,foto3,foto4,foto5,foto6,foto7,foto8) VALUES ('"& ref &"','"& foto1 &"','"& foto2 &"','"& foto3 &"','"& foto4 &"','"& foto5 &"','"& foto6 &"','"& foto7 &"','"& foto8 &"');"	 	 Set objArquivo = nothing   end ifend ifLoopSet objFSO = nothing%>
A variavel Arquivofoto, é o caminho que pega o nome da foto, tentei usar ela para jogar o caminho para o bd, mas oque ocorre é que ele esta criando um linha para cada arquivo no bd mas com o mesmo ID. EX.

 

ID FOTO1 FOTO2 FOTO3 FOTO4 FOTO4 FOTO5 FOTO6 FOTO7 FOTO8

---------------------------------------------------------------------------------------------

1 1.JPG 1.JPG 1.JPG 1.JPG 1.JPG 1.JPG 1.JPG 1.JPG 1.JPG

1 2.GIF 2.GIF 2.GIF 2.GIF 2.GIF 2.GIF 2.GIF 2.GIF 2.GIF

1 3.GIF 3.GIF 3.GIF 3.GIF 3.GIF 3.GIF 3.GIF 3.GIF 3.GIF

---------------------------------------------------------------------------------------------

 

 

Ma o correto deveria ser inserido da seguinte forma no bd

 

ID FOTO1 FOTO2 FOTO3 FOTO4 FOTO4 FOTO5 FOTO6 FOTO7 FOTO8

---------------------------------------------------------------------------------------------

1 1.jpg 2,gif 3.jpg 5.gif 01.jpg 8JPG 9JPG 10.gif 11.jpg

---------------------------------------------------------------------------------------------

 

Alguem sabe como eu posso arrumar este erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente você precisa retirar a query de dentro do loop... desse modo, você está executando várias vezes, e pelo q entendi, você precisa executar uma vez só... e ao invés de usar foto1, foto2, etc... utilize um array... como foto(i)e qdo for gravar no banco... cada campo, será foto(1), foto(2), foto(3)... deu pra entender mais ou menos?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para falar a verdadde não....(-, pq se eu retiro o de dentro do loop ele não adiciona no bd, ou melhor adiciona mas com os campos em brnaco, ele não consegue trazer o nome da var

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.