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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top