Problem with Mappath Classic ASP

Asked

Viewed 229 times

1

You are giving the following message when I click on the "send email":

006~ASP 0173~Invalid Path Character~An invalid Character was specified in the Path Parameter for the Mappath method.

How do I solve this problem ? I don’t know much about ASP Clássico. The code is like this:

ind = ind & "<span><b><a href='" & vStrParametro7 & "/Busca/" & rsQuery("ID_CURSO") & "/" & Server.UrlEncode(TirarAcento(rsQuery("DESCR"))) & "' target='blank'>" & rsQuery("SIGLA") & " - " & rsQuery("DESCR") & "</a></b><span>"

If fso.FileExists(Server.MapPath("/" & Application("pathAdm") & "/" & vStrParametro6 & "/cursos/" & vStrPDF2(z))) Then
    objCDOSYSMail.AddAttachment(Server.MapPath("/" & Application("pathAdm") & "/" & vStrParametro6 & "/cursos/" & vStrPDF2(z)))
End If
  • Do a test. Use backslash "\" instead of "/".

1 answer

1


Look, I would treat everything as best I could before I made the methods process something:

<%
' Para te ajudar eu desmembrei seu código pois fica difícil saber o porque está dando errado então segue como eu faria

'@@@@@@@@@@@@@@@ ANTES
ind = ind & "<span><b><a href='"&vStrParametro7&"/Busca/"&rsQuery("ID_CURSO")&"/"&Server.UrlEncode(TirarAcento(rsQuery("DESCR")))&"' target='blank'>"&rsQuery("SIGLA")&" - "&rsQuery("DESCR")&"</a></b><span>"
if fso.FileExists(Server.MapPath("/" & Application("pathAdm") & "/" &vStrParametro6& "/cursos/" & vStrPDF2(z))) then
    objCDOSYSMail.AddAttachment(Server.MapPath("/" & Application("pathAdm") & "/" &vStrParametro6& "/cursos/" & vStrPDF2(z)))
end if
'@@@@@@@@@@@@@@@ ANTES - FIM 

'@@@@@@@@@@@@@@@ DEPOIS - Melhor tratado para debugar e saber o que está ocorrendo
'Declaro as variáveis assim posso utilizá-las em todo o restante do código de forma mais curta e irá facilitar meu debug manual
Dim cursoID         : cursoID = rsQuery("ID_CURSO")
Dim SIGLA           : SIGLA = rsQuery("SIGLA")
Dim DESCR           : DESCR = rsQuery("DESCR")
Dim DESCR_TRATADO   : DESCR_TRATADO = Server.UrlEncode(TirarAcento(DESCR))
Dim url             : url = vStrParametro7 & "/Busca/" & cursoID & "/" & DESCR_TRATADO
Dim pathAdm         : pathAdm = Application("pathAdm")
Dim vStrPDF2        : vStrPDF2 = vStrPDF2(z)
Dim Endereco        : Endereco = Server.MapPath( "/" & pathAdm & "/" & vStrParametro6 & "/cursos/" & vStrPDF2 )
Dim sHTML           : sHTML = "<span><b><a href='"& url &"' target='blank'>"& SIGLA &" - "& DESCR &"</a></b><span>"

'@@@@@@@@@@@@@@@ DEBUG MANUAL PARA SABER EXATAMENTE O QUE CADA VARIÁVEL ESTÁ RECEBENDO PARA SER TRATADO
'@@ para utilizar o debug, basta descomentar o item necessário e o último response.end(), ou descomente todos
' Dica: Já deixei descomentado para você analisar uns itens, porém creio ser melhor depois você analisar um a um dos objetos ok

response.write "<hr><br><br>"
'response.write "cursoID: " & cursoID & "<br>"
'response.write "SIGLA: " & SIGLA & "<br>"
'response.write "DESCR: " & DESCR & "<br>"
'response.write "DESCR_TRATADO: " & DESCR_TRATADO & "<br>"
'response.write "url: " & url & "<br>"
response.write "pathAdm: " & pathAdm & "<br>"
response.write "vStrParametro6: " & vStrParametro6 & "<br>"
response.write "vStrPDF2: " & vStrPDF2 & "<br>"
response.write "Endereco: " & Endereco & "<br>"
'response.write "sHTML: " & sHTML & "<br>"
response.write "<br><hr>"
response.end()

'Obs Application() deve estar sendo utilizado no arquivo Global.asa para ser utilizado em páginas *.asp
'Referência http://www.w3schools.com/asp/asp_applications.asp

ind = ind & sHTML

if fso.FileExists(Endereco) then
    objCDOSYSMail.AddAttachment(Endereco)
end if

'@@@@@@@@@@@@@@@ DEPOIS - FIM

'Segue um exemplo de como utilizar o Server.MapPath(path)
response.write(Server.MapPath("test.asp") & "<br>")
response.write(Server.MapPath("script/test.asp") & "<br>")
response.write(Server.MapPath("/script/test.asp") & "<br>")
response.write(Server.MapPath("\script") & "<br>")
response.write(Server.MapPath("/") & "<br>")
response.write(Server.MapPath("\") & "<br>")

'Saída:
'c:\inetpub\wwwroot\script\test.asp
'c:\inetpub\wwwroot\script\script\test.asp
'c:\inetpub\wwwroot\script\test.asp
'c:\inetpub\wwwroot\script
'c:\inetpub\wwwroot
'c:\inetpub\wwwroot

'Referência: http://www.w3schools.com/asp/met_mappath.asp
%>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.