我为使用经典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。我确实使用了一个包含文件,我可以对其进行硬编码,但如果可能,我宁愿不这样做。还有其他想法吗?
答案 0 :(得分:4)
你也可以从根中输入绝对路径,例如 行动= “/控制/ FileUpload.asp”
答案 1 :(得分:0)
我不确定你是否正在寻找
<%
Response.Write Server.MapPath("./foo.txt")
%>
来自Some usefull code的中看到过
查找ThisPage()函数