Определите абсолютный URL-адрес ресурса, используя vbscript / classic asp - PullRequest
2 голосов
/ 09 июля 2009

Я создал псевдопользовательский элемент управления для сайта, написанного на классическом ASP. Элемент управления - это просто страница asp (с полными заголовками HTML и телом), которая находится в iframe на родительской странице. Задача состояла в том, чтобы создать AJAX-подобный интерфейс для асинхронной загрузки файлов (родительская страница содержит большую форму, и я не хотел загружать файлы и отправлять оставшуюся часть формы одновременно).
Проблема в том, что у меня много проблем с относительными URL-адресами, которые используются в странице / пользовательском элементе управления iframe. В зависимости от того, какой странице является дочерний элемент 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 / контроль / 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 для тега формы, работает, если вы просто загружаете страницу как есть, а не в iframe другой страницы. Вы можете изменить его на "../controls/FileUpload.asp", и он будет работать на первой странице приложения, но вы должны добавить еще один "../", чтобы он работал на второй странице приложения.
Мне было интересно, если, возможно, есть способ с VBScript, чтобы найти абсолютный URL для определенного файла. Я использую включаемый файл, в который я мог бы написать это жестко, но я бы предпочел, чтобы это было невозможно. Есть еще идеи?

Ответы [ 2 ]

4 голосов
/ 09 июля 2009

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

0 голосов
/ 09 июля 2009

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

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

Какой-то полезный код из Thorarin что я только что видел в другом посте

Ищите функцию ThisPage ()

...