Pregunta

He creado un control de usuario ficticio para un sitio escrito en ASP clásico. El control es simplemente una página ASP (con cabeceras HTML completo y el cuerpo) que reside dentro de un iframe en la página principal. El objetivo era crear una interfaz AJAX-como para subir archivos de forma asíncrona (la página principal contiene una forma grande y yo no quiero tener que subir los archivos y enviar el resto del formulario al mismo tiempo).
El problema es, estoy corriendo en un montón de problemas con las URL relativas se utilizan en el control de la página / iframe usuario. Dependiendo de qué página del iframe es un hijo de la ubicación de la base URL relativa parece cambiar de acuerdo con el directorio de esa página en particular se encuentra en.

Ejemplo: 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>

Los caminos src iframe funcionan correctamente (nótese el que está enterrado un directorio más profundo tiene un doble punto extra). Pero en el código de la página FileUpload.asp, URL relativos no funcionan de forma coherente. La URL que tengo en el atributo de acción para la etiqueta de formulario funciona si simplemente carga la página tal cual, no en un iframe de otra página. Puede cambiarlo a "../controls/FileUpload.asp" y funcionará en la primera página de la aplicación, pero hay que añadir otro "../" para que funcione en la segunda página de la aplicación.
Me preguntaba si tal vez hay una manera con VBScript para encontrar la URL absoluta a un determinado archivo. Hago uso de un archivo de inclusión en el que pude difícil que el código de esto, pero yo prefiero no si eso es posible. ¿Alguna otra idea?

¿Fue útil?

Solución

También puedes, simplemente poner en una ruta absoluta desde la raíz como action = "/ controles / FileUpload.asp"

Otros consejos

No estoy seguro de si usted está buscando quizá

<%
Response.Write Server.MapPath("./foo.txt")
%>

Algunos código útil de Thorarin que acabo de ver en una diverso poste

Busque thisPage () Función

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top