我为一个用经典 asp 编写的站点创建了一个伪用户控件。该控件只是一个位于父页面 iframe 内的 asp 页面(具有完整的 HTML 标头和正文)。重点是创建一个类似 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。我确实使用了一个包含文件,我可以将其硬编码到其中,但如果可能的话,我宁愿不这样做。还有其他想法吗?

有帮助吗?

解决方案

您也可以只放在一个绝对路径从根如 行动= “/控制/ FileUpload.asp”

其他提示

我不确定您是否正在寻找

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

一些有用的代码索拉林我刚刚在a中看到 不同的职位

查找 ThisPage() 函数

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top