سؤال

لقد قمت بإنشاء عنصر تحكم مستخدم Pseudo لموقع مكتوب في ASP الكلاسيكي. عنصر التحكم هو ببساطة صفحة ASP (مع رؤوس وجسم HTML الكامل) الموجودة داخل iFrame في الصفحة الأصلية. كانت النقطة لإنشاء واجهة تشبه AJAX لتحميل الملفات بشكل غير متزامن (تحتوي الصفحة الأصل على نموذج كبير ولم أرغب في تحميل الملفات وإرسال بقية النموذج في نفس الوقت).
المشكلة هي، أنا أهرب إلى الكثير من المشكلات التي يتم استخدام عناوين URL النسبية المستخدمة في عنصر تحكم صفحة IFRAME / المستخدم. اعتمادا على ما هي صفحة 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.as.

...
<form method="post" enctype="multipart/form-data" action="FileUpload.asp"><!--problem here-->
    <input type="file">
    <input type="submit"/>
</form>

تعمل مسارات IFRAME SRC بشكل صحيح (لاحظ أن الواحدة المدفونة دليل أعمق لديه نقطة إضافية مزدوجة). ولكن في رمز الصفحة fileupload.asp، لا تعمل عناوين URL النسبية باستمرار. عنوان URL لدي في سمة الإجراءات لعلامة النموذج يعمل إذا قمت ببساطة بتحميل الصفحة كما هو، وليس في IFRAME من صفحة أخرى. يمكنك تغييره إلى "../controls/fileupload.asp" وسيعمل على صفحة التطبيق الأولى، ولكن عليك إضافة ".." آخر لعمله على صفحة التطبيق الثاني.
كنت أتساءل عما إذا كان هناك طريقة مع VBScript للعثور على عنوان URL المطلق لملف معين. أقوم باستخدام ملف تضمين يمكن أن أقوم به في هذا الأمر، لكنني أفضل ذلك إذا كان ذلك ممكنا. أي أفكار أخرى؟

هل كانت مفيدة؟

المحلول

يمكنك أيضا وضع مسار مطلق من الجذر مثل الإجراء = "/ عناصر التحكم / fileupload.asp"

نصائح أخرى

لست متأكدا مما إذا كنت قد تبحث عنه

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

بعض الرمز المفيد من ثورارينأنني رأيت للتو في وظيفة مختلفة

ابحث عن هذه الصفحة ()

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top