Ir para conteúdo

POWERED BY:

Arquivado

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

Lajus

Problemas com FSO

Recommended Posts

Olá Galera;

 

Tenho um código que lista e deleta imagens de uma pasta no servidor, estou tentando inserir um comando para renomear as imagens mas esta dando erro, gostaria que alguem desse uma olhada no código p/ ver onde esta o erro.

Obs. As linhas de comando que estão dando problemas estão em negrito

 

Agradeço qualquer ajuda

 

Segue o código:

 

<%
Const ImageFilePath = "e:\home\meulogin\web\galeria\imagens\"
Const DeleteButtonLabel = "Excluir imagens marcadas"

Dim objFSO
Dim objFolder
Dim objFile

Dim RenameButtonLabel
Dim strFileNameOld
Dim strFileNameNew 

Dim strFileName
Dim strFileExtension

Dim blnShowImages

If Request.QueryString("ShowImages") = "" Then
blnShowImages = False
Else
blnShowImages = CBool(Request.QueryString("ShowImages"))
End If

If Request.Form("btnDelete") = DeleteButtonLabel Then
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

For Each strFileName In Request.Form("delete")
objFSO.DeleteFile(ImageFilePath & "/" & _
strFileName)
Next

Set objFSO = Nothing
End If

If Request.Form("btnRename") = RenameButtonLabel Then

strFileNameOld ="OldFile.txt" 
strFileNameNew ="NewFile.txt" 

Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.GetFile(Server.MapPath("/imagens" & strFileNameOld)) 
Call objFile.Move(Server.MapPath("/imagens" & strFileNameNew)) 

Set objFile = Nothing
Set objFSO = Nothing

End If

%>

<html>
<body>

<form action="<%= Request.ServerVariables("URL") %>?id=imagens&codigo=010203" method="post">

<table width="100%" border="0" cellpadding=0 cellspacing=2 bordercolor=#0000FF bordercolorlight=silver bordercolordark=White>
<tr bgcolor=gainsboro>
<th height="30"><span class="style9">Nome da imagem</span></th>
<th><span class="style9">Renomear</span></th>
<th><span class="style9">Imagem <a href="<%= Request.ServerVariables("URL") %>?ShowImages=<%= Not blnShowImages %>&id=imagens&codigo=010203">(Mostrar/Esconder)</a></span></th>
<th><span class="style9">Excluir</span></th>
</tr>
<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(ImageFilePath)

For Each objFile In objFolder.Files
strFileExtension = LCase(Mid(objFile.Name, _
InStrRev(objFile.Name, ".", -1, 1) + 1))

If strFileExtension = "gif" Or strFileExtension = "jpg" Or _
strFileExtension = "jpeg" Then
%>
<tr>
<td bgcolor="#E6E6E6" class="style9">
<div align="center">
<%= objFile.Name %> </div></td>
<td bgcolor="#E6E6E6" class="style9"><input name="btnRename" type="submit" class="style9"
value="<%= RenameButtonLabel %>"></td>
<%
If blnShowImages Then
%>
<td bgcolor="#E6E6E6" class="style9">
<div align="center"><img src="http://www.meulogin.com.br/galeria/imagens/<%=objFile.Name %>" /> </div></td>
<%
Else
%>
<td bgcolor="#E6E6E6" class="style9">
<div align="center"><a href="http://www.meulogin.com.br/galeria/imagens/<%=objFile.Name %>">
Ver imagem</a> </div></td>
<%
End If
%>
<td align="center" bgcolor="#E6E6E6">
<div align="center">
<input type="checkbox" name="delete"
value="<%= objFile.Name %>" /> 
</div></td>
<%
End If
Next

Set objFolder = Nothing
Set objFSO = Nothing
%>
<tr>
<td colspan="4" align="right">
<div align="center">
<input name="btnDelete" type="submit" class="style9"
value="<%= DeleteButtonLabel %>"> 
</div></td>
</tr>
</table>

</form>

</body>
</html>

 

valeu galera....

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é esse:

 

Microsoft VBScript runtime error '800a0035'

File not found

/galeria/delete2.asp, line 46

 

 

e a linha 46 é essa:

 

Set objFile = objFSO.GetFile(Server.MapPath("/imagens" & strFileNameOld))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tente trocar esta linha:

 

Set objFile = objFSO.GetFile(Server.MapPath("/imagens" & strFileNameOld))

 

Por esta:

 

Set objFile = objFSO.GetFile(ImageFilePath & strFileNameOld))

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código estava funcionando perfeitamente, até eu inseririr a linha de comando abaixo:

 

If Request.Form("btnRename") = RenameButtonLabel Then

 

strFileNameOld ="OldFile.txt"

strFileNameNew ="NewFile.txt"

 

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

Set objFile = objFSO.GetFile(Server.MapPath("/imagens" & strFileNameOld))

Call objFile.Move(Server.MapPath("/imagens" & strFileNameNew))

 

Set objFile = Nothing

Set objFSO = Nothing

 

End If

 

Como infelizmente meus conhecimentos em Asp ainda são muito limitados, não consegui adequar este comando com o resto do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa, o caminho do arquivo "e:\home\meulogin\web\galeria\imagens\OldFile.txt" está correto? Porque traduzindo o erro que está dando, File not found = arquivo não encontrado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tente trocar esta linha:

 

Set objFile = objFSO.GetFile(Server.MapPath("/imagens" & strFileNameOld))

 

Por esta:

 

Set objFile = objFSO.GetFile(ImageFilePath & strFileNameOld))

Olá, tentei fazer isso tbm, mas infelizmente o Error continua.

 

Outra coisa, o caminho do arquivo "e:\home\meulogin\web\galeria\imagens\OldFile.txt" está correto? Porque traduzindo o erro que está dando, File not found = arquivo não encontrado...

O caminho da pasta de imagens que quero alterar é esse:

e:\home\meulogin\web\galeria\imagens\

 

O que estou tentando fazer na verdade é adicionar um botão que permita o usuário alterar o nome da imagem online.

Compartilhar este post


Link para o post
Compartilhar em outros sites

imprmie o caminho que esta tentado mudar e veja se realmente condiz com o real pois o erro apenas é porque o caminho esta errado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso fazer isso?

 

Ao invés de colocar:

strFileNameOld ="OldFile.txt"

 

fazer assim:

strFileNameOld ="strFileName"

 

e onde esta:

strFileNameNew ="NewFile.txt"

 

fazer um form para inserir o novo nome?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que aparece se colocar

 

response.write(Server.MapPath("/imagens" & strFileNameOld))

 

antes de tentar editar

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que aparece se colocar

 

response.write(Server.MapPath("/imagens" & strFileNameOld))

 

antes de tentar editar

e:\home\meulogin\Web\imagensOldFile.txt

Microsoft VBScript runtime error '800a0035'

 

File not found

 

/galeria/delete2.asp, line 48

Compartilhar este post


Link para o post
Compartilhar em outros sites

falta colocar uma barra

 

coloquea e teste denovo

Compartilhar este post


Link para o post
Compartilhar em outros sites

falta colocar uma barra

 

coloquea e teste denovo

Olá Mario, obrigado pela ajuda e paciencia.

 

Coloquei da seguinte forma:

response.write(Server.MapPath("/galeria/imagens/" & strFileNameOld))

 

A resposta foi:

e:\home\meudominio\Web\galeria\imagens\OldFile.txt

 

Parece que o caminho agora esta certo, mas o problema esta nas variaveis, preciso criar um popup com um form para inserir o novo nome, acho que é isso, não é?

 

Posso fazer isso?

 

Ao invés de colocar:

strFileNameOld ="OldFile.txt"

 

fazer assim:

strFileNameOld ="strFileName"

 

e onde esta:

strFileNameNew ="NewFile.txt"

 

fazer um form para inserir o novo nome?

Compartilhar este post


Link para o post
Compartilhar em outros sites

que nome voce vai alterar?

 

precisa definir isso sim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei uma imagem do produto final para poder explicar melhor a minha idéia:

 

Imagem Postada

 

Conforme a figura acima, gostaria que ao clicar no botão renomear, seja aberto um popup ou uma nova janela com um campo para inserir o novo nome e salvar.

 

Peço desculpas pela confusão, só durante os post que vocês me enviaram que eu me liguei que não era tão simples quanto eu imaginava.

 

Mais uma vez obrigado a todos e fico no aguardo de alguma alma caridosa me dar essa forcinha

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas é simples tiozinho

 

um exemplo:

 

No botao voce passa nome da imagem e na outra pagina voce verifica se a mesma existe antes de renomear

 

	Arquivo = Request("arquivo")
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set fileObject = fso.GetFile(Server.MapPath("/imagens/" & Arquivo))
	fileObject.Name = NovoNome
	Set fileObject = Nothing
	Set fso = Nothing

É so isso

 

o Novo nome voce pode passar por formulario tambem ou fazer com que o sistema gere automaticamente adicionando a datahora ou nome de seu site ao nme original da imagem ai é escolha sua

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas é simples tiozinho

 

um exemplo:

 

No botao voce passa nome da imagem e na outra pagina voce verifica se a mesma existe antes de renomear

 

	Arquivo = Request("arquivo")
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set fileObject = fso.GetFile(Server.MapPath("/imagens/" & Arquivo))
	fileObject.Name = NovoNome
	Set fileObject = Nothing
	Set fso = Nothing

É so isso

 

o Novo nome voce pode passar por formulario tambem ou fazer com que o sistema gere automaticamente adicionando a datahora ou nome de seu site ao nme original da imagem ai é escolha sua

Olá Mario;

 

Juro que tentei, passei a manha inteira tentando fazer isso, mas tenho que adimitir minha incompetência

Como aplico isso no meu código, como faço para o botão pegar o nome apenas do arquivo que esta ao lado dele (conforme mostra a figura q mandei) e abra um popup para inserir um novo nome?

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.