Ir para conteúdo
Fórum Script Brasil
  • 0

Dundas Upload, Verificar Se Arquivo Já Existe


.Andreia.

Pergunta

Pessoal,

to com uma dúvida que tá me matando, já pesquisei até em site árabe laugh.giflaugh.gif mas nada resolve.

Tenho um formulário onde o usuário faz um upload da foto, mas preciso verificar se o arquivo já existe na pasta. Caso tenha, mostra um erro avisando disso.

o código está assim:

set objUpload = server.CreateObject("Dundas.Upload.2") 
objUpload.MaxFileSize = 1048576 
objUpload.UseUniqueNames = false 
objUpload.Save "caminho da minha pasta" 
caminho = "caminho da minha pasta"
foto = objUpload.GetFileName(objUpload.Files(0).Path)

If objUpload.FileExists(caminho & foto) Then
 response.write("erro")
else
 response.write("ok")
end if

O problema é que SEMPRE imprime ok. Já tentei de tudo, até coloquei um SELECT (porque grava no banco o nome do arquivo) mas ele simplesmente ignora meu select...

alguém tem uma sugestao de como fazer? Só preciso que gere uma mensagem de erro caso o arquivo já exista na pasta.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Ok, Alex, tentei assim, mas SEMPRE escreve "já tem" blink.gifblink.gif

set objUpload = server.CreateObject("Dundas.Upload.2") 
objUpload.MaxFileSize = 1048576 
objUpload.UseUniqueNames = false 
objUpload.Save "caminho da minha pasta" 
caminho = "caminho da minha pasta" & foto
foto = objUpload.GetFileName(objUpload.Files(0).Path)

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Caminho) Then
response.write "já tem"

else
response.write "não tem"
End If

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tinha pensado nisso Alex, mas daí tem um problema... quando eu resgato o valor do campo ele vem o caminho todo. Esse caminho varia de tamanho porque depende da pasta onde o usuario está selecionando...

Quando eu uso FSO antes do Dundas pra fazer a verificação, ocorre o mesmo problema porque eu não consigo pegar só o nome do arquivo... vem tudo junto.

ps.: só estou usando o Dundas porque é o unico que o servidor aceita, porque é horrivel esse componente, nem no site achei a documentação. blink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
sera q não seria assim?

If objUpload.FileExists(caminho & "\" & foto) Then
response.write("erro")
else
response.write("ok")
end if

Tb já tentei assim Kuroi, já tentei monte de jeito, até tentei xingando a mãe dele mas pior laugh.gif

vl pela atenção

Link para o comentário
Compartilhar em outros sites

  • 0

tentou um response.write caminho & foto pra ver se volta o caminho correto?

Já sim Kuroi, até colei no IE pra ver se abre a imagem e funcionou certinho. É como eu disse nos tópicos acima.. ele sempre cai em uma condição independe se é ou não. Já tentei até usando SELECT mas eu não sei que diabos acontece que ele ignora o select, até se eu escrever o select errado ele nem gera erro... sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei, mas pode ser

set objUpload = server.CreateObject("Dundas.Upload.2")

Set objNextFile = objUpload.GetNextFile()

caminho = "caminho da minha pasta"

If objUpload.FileExists(caminho & objNextFile.TagName) Then

response.write("erro")

else

objUpload.MaxFileSize = 1048576

objUpload.UseUniqueNames = false

objUpload.Save "caminho da minha pasta"

response.write("ok")

end if

Link para o comentário
Compartilhar em outros sites

  • 0

JCMPJ, não deu pra testar sua opção porque mexi tanto no arquivo que não tenho mais o ponto que era pra alterar.... Bom achei uma solução que testei e funciona certinho.

Vou colocar aqui, se alguém tiver uma ideia pra melhorar, agradeço:

<!--#include file="conexao.asp"-->
<% 
call abre_conexao

'cria instância do objeto 
set objUpload = server.CreateObject("Dundas.Upload.2") 

'estipula o tamanho máximo do arquivo 
objUpload.MaxFileSize = 1048576 

'formatando o nome do arquivo 
objUpload.UseUniqueNames = false 

'informa o path onde os arquivos serão salvos 
objUpload.Save "caminho_da_pasta" 

foto = objUpload.GetFileName(objUpload.Files(0).Path)
caminho = "caminho_da_pasta" & foto

sql="select * from TABELA"
set tab = conexao.execute(sql)

do while not tab.eof

if foto = tab("img_cartao") then %>

<script language="javascript">
window.alert('Este arquivo já existe');
window.location.href="../default.asp"; 
</script>

<%
exit do

end if
tab.movenext
loop

if tab.eof then

sql_insere = "INSERT INTO TABELA (img_cartao) VALUES ('"& foto &"')"
set tab_insere = conexao.execute(sql_insere)

response.redirect "../default.asp"
end if

set tab = nothing
Set objUpload = Nothing
%> 

vl a atenção de todos.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Andreia,

Você grava o novo arquivo mesmo que ele já exista, ou seja, se existe grava por cima do antigo. Então só estava faltando um detalhezinho no primeiro código que você postou. Olha ai, em vermelho.

set objUpload = server.CreateObject("Dundas.Upload.2")

objUpload.MaxFileSize = 1048576

objUpload.UseUniqueNames = false

objUpload.Save "caminho da minha pasta"

caminho = "caminho da minha pasta"

foto = objUpload.GetFileName(objUpload.Files(0).Path)

If objUpload.FileExists(caminho & "\" & foto) Then

response.write("erro")

else

response.write("ok")

end if

Link para o comentário
Compartilhar em outros sites

  • 0

Putz, postei uma coisa nada a ver. Desculpa ai.

Do jeito que coloquei sempre vai existir mesmo, já gravou né.

É assim, para gravar somente se for um novo arquivo:

<%
Set objUpload = server.CreateObject("Dundas.Upload.2")
objUpload.MaxFileSize = 1048576
objUpload.UseUniqueNames = false
Set objNextFile = objUpload.GetNextFile()
caminho = "C:\Inetpub\wwwroot\teste"
If objUpload.FileExists(caminho & "\" & objNextFile.FileName) Then
  	Response.Write("ERRO")
  	Else
      	objNextFile.Save caminho
      	Response.Write("OK")
End If
%>
ou, para gravar de qualquer forma(novo ou não)
<%
Set objUpload = server.CreateObject("Dundas.Upload.2")
objUpload.MaxFileSize = 1048576
objUpload.UseUniqueNames = false
Set objNextFile = objUpload.GetNextFile()
caminho = "C:\Inetpub\wwwroot\teste"
If objUpload.FileExists(caminho & "\" & objNextFile.FileName) Then
  	strmsg="ERRO"
  	Else
    	strmsg="OK"
End If
objNextFile.Save caminho
Response.Write strmsg
%> 

blink.gifblink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

boooooooa JCMPJ, a primeira opção que você me passou funcionou, adaptei aqui e ficou assim:

<!--#include file="conexao.asp"-->
<% 
call abre_conexao

Set objUpload = server.CreateObject("Dundas.Upload.2")
objUpload.MaxFileSize = 1048576
objUpload.UseUniqueNames = false
Set objNextFile = objUpload.GetNextFile()
caminho = "D:\Meus Documentos\IMAGENS"

	If objUpload.FileExists(caminho & "\" & objNextFile.FileName) Then
%>
<script language="javascript">
window.alert('Este arquivo já existe!');
window.location.href="../default.asp"; 
</script>

<%
  Else
  objNextFile.Save caminho
	titulo_foto = objUpload.form("titulo_foto")
	sql_insere = "INSERT INTO TABELA (titulo_cartao, img_cartao) VALUES ('"& titulo_foto &"','"& objNextFile.FileName &"')"
	set tab_insere = conexao.execute(sql_insere)
%>
<script language="javascript">
window.alert('Arquivo salvo com sucesso');
window.location.href="../cartoes_virtuais.asp"; 
</script>
<%

End If

Set objUpload = Nothing
%> 

Bem melhor, obrigadaa wub.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Turma.. Todos os forums tem praticamente as mesmas informacoes sobre o dundas uoload, mas o que nunca achei foi como fazer o dundas salvar o arquivo exatamente com o nome que eu quero..

ex.: upo um arq de nome xcvcvc.jpg e quero que ele seja salvo com o nome temp.jpg.

O que devo fazer??

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...