Question

J'ai créé un contrôle utilisateur pseudo pour un site écrit en asp classique. Le contrôle est tout simplement une page asp (avec les en-têtes HTML complet et le corps) qui se trouve dans un iframe dans la page parent. Le point était de créer une interface AJAX comme pour télécharger des fichiers de manière asynchrone (la page parent contient une grande forme et je ne voulais pas avoir à télécharger les fichiers et soumettre en même temps le reste de la forme).
Le problème est, je suis en cours d'exécution dans beaucoup de problèmes avec urls par rapport utilisé dans la page iframe / contrôle utilisateur. En fonction de la page de l'iframe est un enfant, l'emplacement de base url par rapport semble changer selon le répertoire que cette page est.

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

Les chemins iframe src fonctionnent correctement (notez celui qui est enterré un répertoire plus profond a un double point supplémentaire). Mais dans le code de la page FileUpload.asp, les URL relatives ne fonctionnent pas toujours. L'URL que j'ai dans l'attribut d'action pour la balise form fonctionne si vous chargez simplement la page en l'état, pas dans un iframe d'une autre page. Vous pouvez le changer pour « ../controls/FileUpload.asp » et cela fonctionnera sur la première page de l'application, mais vous devez ajouter un autre « ../ » pour que cela fonctionne sur la deuxième page de l'application.
Je me demandais si peut-être il y a un moyen avec vbscript pour trouver l'URL absolue à un certain fichier. J'utilise un fichier inclure dans lequel je pouvais coder en dur, mais je préfère ne pas si cela est possible. D'autres idées?

Était-ce utile?

La solution

Vous pouvez aussi simplement mettre dans un chemin absolu de la racine, comme action = "/ contrôle / FileUpload.asp"

Autres conseils

Je ne sais pas si vous cherchez peut-être pour

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

Certains code de Thorarin que je viens de voir dans un différent post

Rechercher ThisPage () Fonction

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top