Ir para conteúdo

POWERED BY:

Arquivado

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

Didiron

[Resolvido] Deletar fotos de uma pasta

Recommended Posts

Olá pessoal, eu fiz um sistema de upload de fotos, no qual a foto primeirament é gravada numa pasta chamada Imagens, e posteriormente o seu endereço é gravado no banco de dados. Isso esta funcionando perfeitamente, só que que ainda preciso de uma página onde todas as imagens sao exibidas e ele escolhe uma para excluir, só que eu consigo apenas excluir o endereços dela no banco, mas obviamente a imagem continua na pasta, eu sei que para deleta-la, eu preciso usar o objeto FSO, só que nao estou conseguindo usa-lo corretamente.

 

Vou postar meu código:

 

<%@LANGUAGE="VBSCRIPT"%>


<%codigo = request("Código")

set conexao = server.CreateObject("adodb.connection")
conexao.open "driver={microsoft access driver (*.mdb)}; dbq="& server.MapPath("banco.mdb")


set remover = server.CreateObject("adodb.recordset")
sql = "select * from Galaeria where Código="&codigo
remover.open sql, conexao, 3,3
remover.delete

Set fso = CreateObject("Scripting.FileSystemObject")
Set fileObject = fso.GetFile(Server.MapPath ("<%=listar("Foto")%>"))
fileObject.Delete
Set fileObject = Nothing
response.write("Foto excluida com Sucesso")

%>

 

Alguém poderia me ajudar com isso?Pois esta dando o seguinte erro:

 

Script error detected at line 15.

Source line: Set fileObject = fso.GetFile(Server.MapPath ("<%=listar("Foto")

Description: ')' esperado

Compartilhar este post


Link para o post
Compartilhar em outros sites

está a meter as tags asp

<%=%>
a mais, ex,

 


Set fileObject = fso.GetFile(Server.MapPath(listar("Foto")))

não tem as fotos numa pasta? se tiver tem que por no caminho do server.mappath, ex:

 


Set fileObject = fso.GetFile(Server.MapPath("images/"&listar("Foto")))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por ter respondido, o erro de antes já foi solucionado, só que estou tendo ainda com outro problema, pra falar a verdade são vários, aquilo que voce me falou estava certo eu mudei para

Set fileObject = fso.GetFile(Server.MapPath(listar("Foto")))
(eu não preciso colocar o
("images/"&listar("Foto"))
pois o images já está salvo no nome da foto), só que tipo eu testei apenas o FSO, sem a parte de deletar no banco de dados, ele exclui normal, só que excluiu a imagem numero 1, só que havia selecionado para excluir a imagem numero 5, então ele nao esta conseguindo pegar o endereço certo da imagem.

Vou postar o código da página onde eu seleciono a imagem que eu quero excluir, e da pagina que xclui a imagem selecionada.

 

Página na qual seleciono a imagem

<%@LANGUAGE="VBSCRIPT"%>
<% set conexao = server.CreateObject("adodb.connection")
conexao.open "driver={microsoft access driver (*.mdb)}; dbq="& server.MapPath("banco.mdb") %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="../estilos.css" type="text/css" rel="stylesheet">
<title>Untitled Document</title>
</head>

<body>
<% 'Listagem dos dados
       set listar = Server.CreateObject("ADODB.Recordset")
	   listar.open "SELECT * FROM Galeria", conexao
	   
	   while not listar.EOF
%>
    
    <table width="140" align="left" cellpadding="0" cellspacing="0">
          
<tr>
          <td><input name="codigo" type="hidden" id="codigo" value="<%=listar("Código")%>" /></td>
      </tr>
      <tr>
                <td height="152"><div align="center"><img src="<%=listar("Foto")%>" alt="Foto" width="130" height="125" class="imgesibicao"/><br /><input type="hidden" name="foto"  value="<%=listar("Foto")%>"/>
                </div></td>
                   </tr>
                   
                   <tr>
                 <td><div align="center"><a href="apagarfoto.asp?Código=<%=listar("Código")%>"><img src="../imgs/btn-apagar.jpg" border="0"/></a></div></td> 
                   </tr>
</table>

     
   
<%   listar.movenext
	          wend  %>
	
     
  
</body>
</html>

 

Página que exclui a imagem selecionada:

<%@LANGUAGE="VBSCRIPT"%>

<%codigo = request("codigo")
  foto   = request("foto")

set conexao = server.CreateObject("adodb.connection")
conexao.open "driver={microsoft access driver (*.mdb)}; dbq="& server.MapPath("banco.mdb")

set listar = server.CreateObject("adodb.recordset")
listar.open "Select * from Galeria where Foto="&foto,conexao

set remover = server.CreateObject("adodb.recordset")
sql = "select * from Galeria where Código="&codigo
remover.open sql, conexao, 3,3
remover.delete

Set fso = CreateObject("Scripting.FileSystemObject")
Set fileObject = fso.GetFile(Server.MapPath(listar("Foto")))
fileObject.Delete
Set fileObject = Nothing
response.write("Foto excluida com Sucesso")

%>

 

Só que ainda por cima está dando esse erro:

 

Script error detected at line 9.

Source line: listar.open "Select * from Galeria where Foto="&foto,conexao

Description: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 'Foto='.

 

 

Não sei o que esta acontecendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

<% Option Explicit
' declaro as variaveis
Dim fso,pasta,arquivo,arquivos,varmsg, varcolor

'recupero a var
varmsg=request.querystring("msg")
%>

<script language="javascript">
function novajan(){
window.open ("sucesso.asp","Excluido","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</script>
<%
if varmsg = 1 then 'excluido com sucesso
response.write("<script>novajan();</script>")
end if


Set fso=Server.createobject("Scripting.FileSystemObject")
Set pasta=fso.GetFolder("C:\Inetpub\wwwroot\agenda")
Set arquivo= pasta.files
%>

<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="2" 
BORDERCOLOR="#000000" width="385">
<TR> 

<TD height="22" align="center" valign="middle" bgcolor="#FF9933"72"><font color="#000000" 

face="Tahoma" size="2"><B>Arquivo</B></font></TD>
<TD width="213" height="22" align="center" valign="middle" bgcolor="#FF9933"><font color="#000000" 
face="Tahoma" size="2"><B>Excluir</B></font></TD>
</TR>

<%
varcolor = True
For Each arquivos In arquivo
	if varcolor then %>
	<TR BGCOLOR="#FFFFFF"> <%
	varcolor = False
 	else %>
<TR BGCOLOR="#E1E1E1"> <%
		varcolor = True
	end if %>

<TD ALIGN="left" width="158" ><div align="center"><font face="Tahoma" size="2" color="#000000"><A HREF="C:\Inetpub\wwwroot\agenda\"<%=arquivos.name%>"> 
<%= arquivos.Name %></A></font></div></TD>


<TD ALIGN="left" width="213" ><div align="center"><font face="Tahoma" size="2" color="#000000"><A HREF="excluir_action_arq.asp?arq=<%=arquivos.name%>">Excluir</A></font></div></TD>
<%
Next 
%> 
</TR>
</TABLE>

<% Option Explicit
' declaro as var.
dim vararq,fso,path
 vararq=request.querystring("arq")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
   fso.DeleteFile "C:\Inetpub\wwwroot\agenda\" & vararq,false
response.Redirect("delete_arq.asp?msg=1")
   %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, andei analisando o seu código, e nao entendi algumas coisas, ve se voce pode me ajudar com isso:

 

1° - voce está fazendo ese request do que?

varmsg=request.querystring("msg")

 

2° - Essa página sucesso.asp, é uma página dizendo que o arquivo foi excluido com sucesso?

<script language="javascript">
function novajan(){
window.open ("sucesso.asp","Excluido","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</script>
<%
if varmsg = 1 then 'excluido com sucesso
response.write("<script>novajan();</script>")
end if

 

3° - Aqui eu coloco o nome da pasta onde no caso eu tenho as minhas fotos?

Set pasta=fso.GetFolder("C:\Inetpub\wwwroot\agenda"

 

4°- Aqui vem a parte que eu menos entendi, o que siginifica esse

<%=arquivos.name%>
?

 

5° - E nesse aqui eu vou ter que colocar um lasso e um select para para que exiba todas as minhas fotos, mas de que forma, pois tem aquele

<%=arquivos.name%>
,que estará me incomodando paara exibir as fotos.

<%
varcolor = True
For Each arquivos In arquivo
        if varcolor then %>
        <TR BGCOLOR="#FFFFFF"> <%
        varcolor = False
        else %>
<TR BGCOLOR="#E1E1E1"> <%
                varcolor = True
        end if %>

<TD ALIGN="left" width="158" ><div align="center"><font face="Tahoma" size="2" color="#000000"><A HREF="C:\Inetpub\wwwroot\agenda\"<%=arquivos.name%>"> 
<%= arquivos.Name %></A></font></div></TD>


<TD ALIGN="left" width="213" ><div align="center"><font face="Tahoma" size="2" color="#000000"><A HREF="excluir_action_arq.asp?arq=<%=arquivos.name%>">Excluir</A></font></div></TD>
<%
Next

 

E mais uma coisa esse script aqui no caso seria da página excluir_action_arq.asp ?

<% Option Explicit
' declaro as var.
dim vararq,fso,path
 vararq=request.querystring("arq")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
   fso.DeleteFile "C:\Inetpub\wwwroot\agenda\" & vararq,false
response.Redirect("delete_arq.asp?msg=1")
   %>

Me desculpe pela "incrompeensão", iniciei em estudar ASP, faz uns 4 meses, opor isso ainda não tenho podemos dizer assim tantas "manhas".

 

Abração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala ae Didiron, cara vamos lá.. vou tentar te ajudar aqui montando a pagina que lista todas as fotos cadastradas:

 

1° vamos criar um arquivo de conexao com o banco de dados config.asp

<%
dim con, caminho
	caminho = "E:\home\atecengenharia\dados\atec.mdb"
sub connect
		set con = server.CreateObject("ADODB.Connection")
		con.connectionstring="driver={Microsoft Access Driver (*.mdb)};Dbq="&caminho
		con.open
end sub
sub disconnect	
	set con = nothing
end sub
%>

2º vamos criar a pagina que lista todas as fotos cadastradas:

viewfotos.asp

<!--incluimos o arquivos de conexao com o banco de dados-->
<!--#include file="config.asp" -->
<%
	call connect 'abrindo o banco de dados
		dim rs 'declaracao de variaveis
		set rs = con.execute("SELECT * FROM FOTOS") 'selecionamos todas as fotos
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>View Fotos</title>
</head>

<body>
<table width="157" border="1">
 <!--Aqui ele vai litar todas as fotos que estiver cadastrada na tabela FOTOS.-->
  <%
  	while rs.eof = false then
  %>
  <tr>
    <td width="200"><%=rs("NOME_FOTO")%></td>
    <td width="59"><a href="deletar.asp?foto=<%=rs("NOME_FOTO")%>">Deletar</a></td>
  </tr>
  <%
  	rs.movenext
	wend
  %>
</table>
</body>
</html>
<%
	call disconnect 'desconectamos do banco
%>

3º criaremos o arquivo para deletar a imagem do banco de dados e tambem do ftp.

 

deletar.asp

<!--incluimos o arquivo de conexao com o banco de dados-->
<!--#include file="config.asp" -->
<%
	call connect ' abrimos o banco de dados
	dim rs, foto 'declaramos nossas variaves
	
	foto = request.QueryString("foto") 'usamos uma querystring para recuperar o nome da foto da pagina viewfotos.asp
	
	set rs = con.execute("DELETE FROM FOTOS WHERE NOME_FOTO='"&foto&"'")'deletamos a foto do banco de dados
	
	'**************************agora iremos deletar a foto da pasta no ftp****************************
	
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileObject = fso.GetFile(Server.MapPath ("../fotos/"&foto))
fileObject.Delete
Set fileObject = Nothing

	response.Write("A foto "&foto& "foi excluida com sucesso!")
	
	call disconnect 'fecha a conexao
%>

Acho que é isso ai meu caro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gilberto Jr. Nuestra la Senhorita

 

Agora voce foi um monstro, em ter-me ajudado dessa forma, muito obrigado memso, está funcionando agora maravilhosamente PERFEITO.

Voce foi de mais, obrigadão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

parabéns...

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.