Определите абсолютный URL-адрес ресурса с помощью vbscript / classic asp

StackOverflow https://stackoverflow.com/questions/1105505

Вопрос

Я создал псевдопользовательский элемент управления для сайта, написанного на классическом asp.Элемент управления - это просто страница asp (с полными HTML-заголовками и телом), которая находится внутри iframe на родительской странице.Смысл состоял в том, чтобы создать AJAX-подобный интерфейс для асинхронной загрузки файлов (родительская страница содержит большую форму, и я не хотел загружать файлы и отправлять остальную часть формы одновременно).
Проблема в том, что я сталкиваюсь с множеством проблем, связанных с использованием относительных URL-адресов в iframe page / user control.В зависимости от того, какой страницей является дочерний фрейм iframe, относительное базовое местоположение URL, по-видимому, меняется в зависимости от каталога, в котором находится эта конкретная страница.

Пример: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>

Пути iframe src работают корректно (обратите внимание, что тот, который находится глубже каталога, имеет дополнительную двойную точку).Но в коде для страницы FileUpload.asp относительные URL-адреса не работают последовательно.URL, который у меня есть в атрибуте action для тега form, работает, если вы просто загружаете страницу как есть, а не в iframe другой страницы.Вы можете изменить его на "../controls/FileUpload.asp", и он будет работать на первой странице приложения, но вам нужно добавить еще один "../", чтобы он работал на второй странице приложения.
Мне было интересно, может быть, есть способ с помощью vbscript найти абсолютный URL-адрес определенного файла.Я действительно использую включаемый файл, в который я мог бы это жестко запрограммировать, но я бы предпочел этого не делать, если это возможно.Есть еще какие-нибудь идеи?

Это было полезно?

Решение

Вы также могли бы просто указать абсолютный путь от корневого каталога, например action="/controls/FileUpload.asp"

Другие советы

Я не уверен, возможно, вы ищете

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

Немного полезного кода от Тораринчто я только что увидел в другой пост

Найдите функцию ThisPage().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top