2009-07-09 152 views
2

確定資源的絕對URL我已經爲使用傳統asp編寫的站點創建了僞用戶控件。該控件只是一個駐留在父頁面的iframe中的asp頁面(具有完整的HTML標題和正文)。關鍵是創建一個類似於AJAX的界面來異步上傳文件(父頁面包含一個大表單,我不想同時上傳文件和提交表單的其餘部分)。
問題是,我遇到了很多有關在iframe頁面/用戶控件中使用相關url的問題。根據什麼頁面的iframe是一個孩子,相對URL基地的位置似乎根據特定的頁面在目錄改變使用vbscript/classic asp

例: 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

你也可以只需從根目錄中輸入絕對路徑,如 action =「/ controls/FileUpload.asp」

+0

是的。而已。我真的很愚蠢。 – rdevitt 2009-07-09 19:26:55

0

我不知道,如果你也許從Thorarin ,我只是在一個different post

查找ThisPage看到尋找

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

Some usefull code()函數

+0

不,這隻能給我文件系統中文件的絕對路徑。我需要一個URL(即我需要'www.website.com/controls/FileUpload.asp'不是'c:\ inetpub \ wwwroot \ website \ controls \ FileUpload.asp') – rdevitt 2009-07-09 18:30:08