Determinar um url absoluto para um recurso usando VBScript / ASP clássico
-
12-09-2019 - |
Pergunta
Eu criei um controle de usuário pseudo para um site escrito em asp clássico. O controle é simplesmente uma página ASP (com cabeçalhos HTML completo e corpo) que reside dentro de um iframe na página mãe. O objetivo era criar um AJAX-como interface para upload de arquivos de forma assíncrona (a página pai contém uma forma grande e eu não quero ter que carregar os arquivos e enviar o resto do formulário ao mesmo tempo).
O problema é que eu estou correndo em um monte de problemas com URLs relativos a ser utilizado no controle de página / user iframe. Dependendo do que página do iframe é uma criança de, a localização base url relativa parece mudar de acordo com o diretório que determinada página está em.
Exemplo: www.website.com/directory1/application1.asp
...
<form>
<input>
...
<iframe src="../controls/FileUpload.asp"/>
...
</form>
...
www.website.com/directory1/directory2/application2.asp
...
<form>
<input>
...
<iframe src="../../controls/FileUpload.asp"/>
...
</form>
...
www.website.com/controls/FileUpload.asp
...
<form method="post" enctype="multipart/form-data" action="FileUpload.asp"><!--problem here-->
<input type="file">
<input type="submit"/>
</form>
caminhos O ??iframe src funcionar corretamente (observe o que está enterrado um diretório mais profundo tem um ponto de casal extra). Mas no código da página FileUpload.asp, URLs relativos não funcionam de forma consistente. O URL que tenho no atributo de ação para a marca de formulário funciona se você simplesmente carregar a página como está, não em um iframe de outra página. Você pode alterá-lo para "../controls/FileUpload.asp" e ele vai trabalhar na página de primeira aplicação, mas você tem que adicionar outro "../" para que ele funcione na segunda página do aplicativo.
Fiquei me perguntando se talvez haja uma maneira com vbscript para encontrar o URL absoluto para um determinado arquivo. Eu uso um arquivo de inclusão no qual eu poderia codificar isso, mas eu prefiro não se isso é possível. Quaisquer outras ideias?
Solução
Você também pode apenas colocar em um caminho absoluto da raiz, tais como action = "/ controles / FileUpload.asp"
Outras dicas
Eu não tenho certeza se você está, talvez, procurando
<%
Response.Write Server.MapPath("./foo.txt")
%>
Alguns código útil de Thorarin que eu só vi em um pós diferente
Procure thisPage () Função