Ir para conteúdo

POWERED BY:

Arquivado

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

wills

Duplicidade em upload.

Recommended Posts

olá à todos!

 

novamente venho postar para retirar mais algumas dúvidas, já que uma já fora esclarecida.

 

seguinte: tenho um "sistema" para fazer upload, ele salva os dados em bd, envia por e-mail os mesmos dados e faz o upload para um diretório virtual.

 

problema: eu quero usar os nomes reais dos arquivos, então, se uma pessoa postar duas vezes o mesmo arqui ele vai passar por cima, certo?

 

estou tentando fazer uma validação para que isso não ocorra.

 

ainda ontem o mário (não sei o resto do nick dele) me disse sobre fso, pesquisei e achei algo mas, não funfou comigo, podem me dizer se seria isto mesmo?

 

if foto4 <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto4)
For i = 1 to LenB(foto4)
MyFile.Write chr(AscB(MidB(foto4,i,1)))
Next
MyFile.Close

eu tentei fazer assim:

 

set pes = bd.execute("select * from clientes where psd = '" & objUpload.Form("f1") & "'")
		if not pes.eof then

			arquivos = "e:\domains\4vconnect.com\wwwroot\dundas\"	
			Set objUpload = Server.CreateObject("Dundas.Upload.2")
			objUpload.UseVirtualDir = False
			objUpload.UseUniqueNames = True
			objUpload.Save arquivos
			Response.Write "Arquivo enviado com sucesso!"	
	
			For Each arquivos in objUpload.Files
				Path = arquivos.Path
				NomeArquivo = objUpload.GetFileName(Path)
			Next

			insert = "insert into clientes(nome,mail,telefone,psd,data)"
			insert = insert & "values ('" & objUpload.Form("txtnome") & "','" & objUpload.Form("txtmail") & "',"
			insert = insert &  "'" & objUpload.Form("txttelefone") & "','" & NomeArquivo & "', '"& Now() & "')"
			set inseri = bd.execute(insert)
			
							mnome = objUpload.Form("txtnome")
							mde = objUpload.Form("txtmail")
							massunto = "envio de layout .psd"
							txttelefone = objUpload.Form("txttelefone")
							mdata = Now()
							mmsg = NomeArquivo
							
							
							corpo = "Nome:" & mnome & vbnewline
							corpo = corpo & "E-mail:" & mde & vbnewline
							corpo = corpo & "Assunto:" & massunto & vbnewline
							corpo = corpo & "Telefone:" & txttelefone & vbnewline
							corpo = corpo & "Data:" & mdata & vbnewline
							corpo = corpo & "Nome do arquivo:" & mmsg
							
							Set objCDOSYSMail = Server.CreateObject("CDO.Message")
							Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
							objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.4vconnect.com"
							objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
							objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
							objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
							objCDOSYSCon.Fields.update
							Set objCDOSYSMail.Configuration = objCDOSYSCon
							objCDOSYSMail.From = mde
							objCDOSYSMail.To = "willians@4vconnect.com"
							objCDOSYSMail.Subject = massunto
							objCDOSYSMail.TextBody = corpo
							objCDOSYSMail.Send
							Set objCDOSYSMail = Nothing
							Set objCDOSYSCon = Nothing
		else
		response.Write("duplicou!")
		end if

podem me ajudar nessa ae?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas e no caso de arquivos diferentes com o mesmo nome? o que pretende fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae cara, tudo certo?!

 

então, pretendo mandar uma msg dizendo que existe um arquivo com o mesmo nome.

 

achas isso estranho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce pode fazer o upload sempre

 

apenas renomeando o arquivo que esta subindo

 

pode colocar junto ao nome original a data/hora atual do sistema

 

assim nunca vai dar duplicidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, lembra de ontem aquele trampo que tu me ajudou?:

 

no bd estou colocando data e hora para ter maior controle....

 

mas, a treta é que os arquivos serão outras pessoas que irão fazer upload... por isso quero uma regra para não duplicar.

 

assim, ele não faz upload e nem salva nada do bd e nem chega nenhum e-mail para mim, caso seja arquivo duplicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, como disse tem como voce consultar usando FSO para ver se o arquivo ja existe

 

mas pode ser um arquivo de mesmo nome porem diferente

 

não acha melhor renomear o arquivo e fazer o upload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum... essa eu não tinha pensando.... é, seria bem mais fácil tanto para mim quando para o usuário.

 

mas, vai ser com fso, não vai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim

 

voce apos fazer o upload renomeia o arquivo

 

e grava no DB o nome do arquivo ja modificado

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum...assim é bom que nem preciso fazer uma verificação em asp para ver se o arquivo é duplicado....

 

deixa eu pergutar, é aqui no fórum, sabes e alguém já postou isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara, achei aqui!

 

<%  pasta = "C:\sites\site_teste\imagens\"

Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject")

set arquivos = Objfso.getFolder(pasta)
for each file in arquivos.files

'pego o nome do arquivo
var = file.name

'crio o novo nome, neste caso, substitui o espaço por _
novo_nome = Replace(var," ","_")

Objfso.MoveFile pasta & var, pasta & Lcase (novo_nome)

'caso queira ver os arquivos renomeados, descomente essa linha
'response.write lcase (novo_nome) &"<br>"
next

set arquivos = nothing
set ObjFSO = nothing

vou dar uma estuda e ver o que ocorre

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo

 

apenas renoemeie como achar melhor

 

sugiro usar a data/hora atual

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, e ae pessoal...

 

tentei fazer a verificação do arquivo para que ele não passe por cima do atual porém, não rolou.... fiz o código da seguinte forma:

 

pasta = "e:\domains\4vconnect.com\wwwroot\dundas\"

			Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject")
			
			set arquivo = Objfso.getFolder(pasta)
			for each file in arquivo.files
			
			'pego o nome do arquivo
			var = file.name
			
			'crio o novo nome, neste caso, substitui o espaço por _
			novo_nome = Replace(var," ", Now())
			
			[b]Objfso.MoveFile pasta & var, pasta & Lcase (novo_nome)[/b]
			
			'caso queira ver os arquivos renomeados, descomente essa linha
			response.write lcase (novo_nome) &"<br>"
			next
			
			set arquivos = nothing
			set ObjFSO = nothing
			
			
			arquivos = "e:\domains\4vconnect.com\wwwroot\dundas\"	
			Set objUpload = Server.CreateObject("Dundas.Upload.2")
			objUpload.UseVirtualDir = False
			objUpload.UseUniqueNames = True
			objUpload.Save arquivos
			Response.Write "Arquivo enviado com sucesso!"	
	
			For Each arquivos in objUpload.Files
				Path = arquivos.Path
				NomeArquivo = objUpload.GetFileName(Path)
			Next

			insert = "insert into clientes(nome,mail,telefone,psd,data)"
			insert = insert & "values ('" & objUpload.Form("txtnome") & "','" & objUpload.Form("txtmail") & "',"
			insert = insert &  "'" & objUpload.Form("txttelefone") & "','" & NomeArquivo & "', '"& Now() & "')"
			set inseri = bd.execute(insert)

onde está em negrito está dando erro...

 

para ficar melhor: http://www.4vconnect.com/dundas.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, e ae pessoal...

 

tentei fazer a verificação do arquivo para que ele não passe por cima do atual porém, não rolou.... fiz o código da seguinte forma:

 

pasta = "e:\domains\4vconnect.com\wwwroot\dundas\"

			Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject")
			
			set arquivo = Objfso.getFolder(pasta)
			for each file in arquivo.files
			
			'pego o nome do arquivo
			var = file.name
			
			'crio o novo nome, neste caso, substitui o espaço por _
			novo_nome = Replace(var," ", Now())
			
			[b]Objfso.MoveFile pasta & var, pasta & Lcase (novo_nome)[/b]
			
			'caso queira ver os arquivos renomeados, descomente essa linha
			response.write lcase (novo_nome) &"<br>"
			next
			
			set arquivos = nothing
			set ObjFSO = nothing
			
			
			arquivos = "e:\domains\4vconnect.com\wwwroot\dundas\"	
			Set objUpload = Server.CreateObject("Dundas.Upload.2")
			objUpload.UseVirtualDir = False
			objUpload.UseUniqueNames = True
			objUpload.Save arquivos
			Response.Write "Arquivo enviado com sucesso!"	
	
			For Each arquivos in objUpload.Files
				Path = arquivos.Path
				NomeArquivo = objUpload.GetFileName(Path)
			Next

			insert = "insert into clientes(nome,mail,telefone,psd,data)"
			insert = insert & "values ('" & objUpload.Form("txtnome") & "','" & objUpload.Form("txtmail") & "',"
			insert = insert &  "'" & objUpload.Form("txttelefone") & "','" & NomeArquivo & "', '"& Now() & "')"
			set inseri = bd.execute(insert)

onde está em negrito está dando erro...

 

para ficar melhor: http://www.4vconnect.com/dundas.htm

 

Ola wills tava vendo seu pots, eu acho que o problema esta na conexão no bd, da uma olha dai

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro?

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.