Domanda

Ho creato uno pseudo controllo utente per un sito scritto in asp classico.Il controllo è semplicemente una pagina ASP (con intestazioni e corpo HTML completi) che risiede all'interno di un iframe nella pagina padre.Il punto era creare un'interfaccia simile a AJAX per caricare i file in modo asincrono (la pagina principale contiene un modulo di grandi dimensioni e non volevo dover caricare i file e inviare il resto del modulo contemporaneamente).
Il problema è che sto riscontrando molti problemi con gli URL relativi utilizzati nella pagina iframe/controllo utente.A seconda della pagina di cui è figlio l'iframe, la posizione relativa della base dell'URL sembra cambiare in base alla directory in cui si trova quella particolare pagina.

Esempio:www.sitoweb.com/directory1/application1.asp

...
<form>
    <input>
    ...
    <iframe src="../controls/FileUpload.asp"/>
    ...
</form>
...

www.sitoweb.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>

I percorsi iframe src funzionano correttamente (nota che quello sepolto in una directory più in profondità ha un doppio punto in più).Ma nel codice della pagina FileUpload.asp gli URL relativi non funzionano in modo coerente.L'URL che ho nell'attributo action per il tag form funziona se carichi semplicemente la pagina così com'è, non in un iframe di un'altra pagina.Puoi cambiarlo in "../controls/FileUpload.asp" e funzionerà sulla prima pagina dell'applicazione, ma devi aggiungere un altro "../" affinché funzioni sulla seconda pagina dell'applicazione.
Mi chiedevo se forse esiste un modo con vbscript per trovare l'URL assoluto di un determinato file.Utilizzo un file di inclusione in cui potrei codificarlo in modo rigido, ma preferirei di no se ciò fosse possibile.Altre idee?

È stato utile?

Soluzione

Potresti anche semplicemente inserire un percorso assoluto dalla radice come Action = "/Controls/FileUpload.asp"

Altri suggerimenti

Non sono sicuro che forse stai cercando

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

Qualche codice utile da Thorarinche ho appena visto in a posta diversa

Cerca la funzione ThisPage()

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top