2

我为一个用经典 asp 编写的网站创建了一个伪用户控件。该控件只是一个 asp 页面(带有完整的 HTML 标题和正文),它位于父页面的 iframe 中。重点是创建一个类似 AJAX 的接口来异步上传文件(父页面包含一个大表单,我不想同时上传文件和提交表单的其余部分)。
问题是,我遇到了很多关于 iframe 页面/用户控件中使用的相对 url 的问题。根据 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 不能始终如一地工作。如果您只是按原样加载页面,而不是在另一个页面的 iframe 中,我在表单标签的 action 属性中的 URL 就可以工作。您可以将其更改为“../controls/FileUpload.asp”,它将在第一个应用程序页面上运行,但您必须添加另一个“../”才能使其在第二个应用程序页面上运行。
我想知道是否有一种方法可以使用 vbscript 找到某个文件的绝对 URL。我确实使用了一个包含文件,我可以在其中对其进行硬编码,但如果可能的话,我宁愿不这样做。还有其他想法吗?

4

2 回答 2

4

您也可以从根目录输入一个绝对路径,例如 action="/controls/FileUpload.asp"

于 2009-07-09T18:31:10.573 回答
0

我不确定您是否正在寻找

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

我刚刚在另 一篇文章中看到的来自Thorarin的一些有用代码

查找 ThisPage() 函数

于 2009-07-09T18:00:10.403 回答