VBScriptの/従来のASPを使用してリソースへの絶対URLを決定します
-
12-09-2019 - |
質問
私は、従来のASPで書かれたサイトの疑似ユーザーコントロールを作成しました。コントロールは、単に親ページ内のiframe内に存在する(完全なHTMLヘッダとボディを持つ)ASPページです。ポイントは非同期にファイルをアップロードするための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パスは(深いディレクトリを埋め、余分な二点を持っています1に気づく)正常に動作します。しかしFileUpload.aspページのコードでは、相対URLは、一貫して動作しません。そのまま使用すると、単純ではない別のページのiframe内に、ページをロードする場合、私は、フォームタグのaction属性を持っているURLが動作します。あなたは「../controls/FileUpload.asp」に変更することができ、それが最初のアプリケーション・ページ上で動作しますが、あなたはそれが第二のアプリケーション・ページ上で動作するようにするために、別の「../」を追加する必要があります。
多分、特定のファイルへの絶対URLを見つけるためのVBScriptでの方法があります場合、私は思っていました。私はそれが可能だ場合は、このハードコード私ができるその中に含まれたファイルを使用しますが、私はむしろないと思いません。他のアイデア?
解決
また、同じようなルートからの絶対パスで入れることができます アクション= "/コントロール/ FileUpload.asp"
他のヒント
私はあなたがおそらく探しているかどうかわからないんだけど。
<%
Response.Write Server.MapPath("./foo.txt")
%>
のnoreferrer">:// stackoverflow.com/users/64767/thorarin">Thorarinする 私はちょうど異なるポストの中で見たこと
ThisPageを探してください()関数