Ir para conteúdo

POWERED BY:

Arquivado

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

Martinsrj

[Resolvido] Dificuldade em deletar o arquivo

Recommended Posts

Olá pessoal, boa tarde!

Estou com dificuldade em deletar um arquivo na pasta logoUpload.

Preciso seguir o seguinte procedimento: Faz o upload do arquivo o mesmo é colocado em uma pasta temporária: logos_tmp e caso o usuario salve o projeto o arquivo é movido para a pasta logoUload. Sempre é gravado na pasta logoUpload da seguinte forma: NovoArquivo = "logo_"&request("codigo")& "." & right(session("rnd"),3)

Irei dar um exemplo o que tem ocorrido: usuario upa um arquivo, automaticamente ele é gravado na pasta logos_tmp da seguinte forma: Arquivo = "logo_temp_"&session("rnd"), uma observação essa session é gerada assim: randomize()session("rndSext") = cint(rnd()*9999) e com isso é gravado com o seguinte nome na pasta: logo_temp_2367.jpg. Quando eu movo esse arquivo para a pasta logoUload ele ser gravado com o seguinte nome logo_1.jpg, porem NÃO estou conseguindo deletar o ARQUIVO antigo chamado: logo_1.png da pasta.

Utilizo até o comando para deletar, mas não funciona. Comando que utilizo:

If oFS.FileExists (Diretorio & NovoArquivo) then

'If oFS.FileExists(Diretorio & NovoArquivo) then

Set fileObject = oFS.GetFile(Diretorio & NovoArquivo)

fileObject.Delete

 

'oFS.DeleteFile(Diretorio & NovoArquivo)

 

'Set fileObject = nothing

'session.Contents.Remove("rnd")

Set oFS = Nothing

exit Sub

End if

 

	If session("rnd") <> "" then	
		caminho = Server.MapPath(".")
		Diretorio = caminho&"\logoUpload\"
		Diretorio_tmp = caminho&"\logos_tmp\"

		Server.Scripttimeout = 300
		
		Set oFS = Server.CreateObject("Scripting.FileSystemObject") 
		'Move o arquivo para a pasta correta de logos
		Arquivo = "logo_temp_"&session("rnd")'&".jpg"
		'NovoArquivo = "logo_"&request("codigo")& "." & right(session("rnd"),3)
		NovoArquivo = "logo_"&request("codigo")
		
		'FileExists(Arquivo): Este método retorna True se o arquivo passado como parametro existe	
		If oFS.FileExists (Diretorio & NovoArquivo) then
		'If oFS.FileExists(Diretorio & NovoArquivo) then
			Set fileObject = oFS.GetFile(Diretorio & NovoArquivo) 
			fileObject.Delete

			'oFS.DeleteFile(Diretorio & NovoArquivo)
			
			'Set fileObject = nothing
			'session.Contents.Remove("rnd")
			Set oFS = Nothing
			exit Sub
		End if
			
			NovoArquivo = "logo_"&request("codigo")& "." & right(session("rnd"),3)			
			oFS.movefile Diretorio_tmp & Arquivo, Diretorio & NovoArquivo
			
			
'			If oFS.FileExists( Server.MapPath("meu_arquivo.html") ) Then
'				Response.Write "O arquivo listado existe!"
'			Else 
'				Response.Write "O arquivo listado não existe"
'			End If
'			Set Arquivo = Nothing

			
			Set oFS = Nothing
			session.Contents.Remove("rnd")
		
			SQL = "UPDATE usr_clientes SET nomeImg = '"&NovoArquivo&"' WHERE codigo = "&request("codigo")
		'response.Write SQL
		'response.End()
		gpExecuteSQL(SQL)
	End if
Postei o código no pastebin para uma melhor visualização: http://pastebin.com/f1c5755c

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a mensagem de erro é retornada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Salgado, boa noite!

Na verdade não aparece nenhuma mensagem de erro, simplesmente ele não deleta o arquivo da pasta.

 

Porem eu quebrando a cabeça aqui consegui resolver o problema.

Troquei o código:

If oFS.FileExists (Diretorio & NovoArquivo) then                
'If oFS.FileExists(Diretorio & NovoArquivo) then                        
Set fileObject = oFS.GetFile(Diretorio & NovoArquivo)
fileObject.Delete                        
'oFS.DeleteFile(Diretorio & NovoArquivo)
'Set fileObject = nothing                        
'session.Contents.Remove("rnd")                        
Set oFS = Nothing                        
exit Sub                
End if

Por esse e funcionou:

Set objFolder = oFS.GetFolder(Server.MapPath("logoUpload"))  
  Set fc = objFolder.Files
  
  'listamos o nome de cada arquivo conteúdo na pasta, mediante um loop for… each - 
  'GetBaseName: este método retorna apenas o nome do arquivo.
  For each nomeArquivo in fc  
  'Response.Write oFS.GetBaseName(nomeArquivo)
   If NovoArquivoSE = oFS.GetBaseName(nomeArquivo) then
    oFS.DeleteFile(nomeArquivo)
   End if
  Next

OBS.: o código que está no pastebin não faz parte da minha dúvida e sim o que foi colocado no fórum acima do link.

 

Qual a mensagem de erro é retornada?

 

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.