سؤال

وسوف يتم تشغيل التعليمات البرمجية التالية بشكل صحيح في IE7 مع أحدث حزم الخدمات المثبتة.

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", "attachment;filename=Contacts.xls");
response.ContentType = "application/octet-stream";

System.Text.UnicodeEncoding Encoding = new System.Text.UnicodeEncoding();

byte[] unicodeBytes = {255,254};
int length = 2 + Encoding.GetByteCount(_exportContent); // _exportContent is string.
response.AddHeader("Content-Length", length.ToString());
response.OutputStream.Write(unicodeBytes, 0, 2);
unicodeBytes = Encoding.GetBytes(_exportContent);
response.OutputStream.Write(unicodeBytes, 2, unicodeBytes.Length);
response.End();

وأنا فتح صفحة aspx مع شبيبة (window.open ()) وتنفيذ التعليمات البرمجية أعلاه في Page_Load ().

والشيء الغريب هو أن نافذة للملوثات العضوية الثابتة، يحاول تحميل / عرض ملف الحوار ثم تسمع صوت مثل نافذة منبثقة قد تم منعه (على الرغم من أن يتم إيقاف مانع النوافذ المنبثقة!).

وتعاليق:
- يحدث السلوك سواء على XP وW2K3 (والذي هو خادم الويب الحقيقي دون أي شيء آخر تثبيت ولكن IE7 و FW 3.5 SP1 و أحدث حزم الخدمة). - ونفس رمز يعمل بشكل جيد مع مهاجم 2.0 - فايرفوكس لديه أي مشاكل لعرض ملف الحوار

وأود أن يكون من الغريب إذا كان أي شخص آخر قد واجهت نفس المشكلة، ويمكن أن توفر حلا للحصول على شيء يعمل في IE7.

وابتهاج،
ديمي

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

المحلول

وإضافة رأس قول IE <م> صراحة إلى ذاكرة التخزين المؤقت الملف. IE لم يعرف البق مع عدم القدرة على حفظ الملف بشكل صحيح إذا تم إرساله كملف عدم ذاكرة التخزين المؤقت.

نصائح أخرى

وكان لي نفس المشكلة، وأمضى ساعة يجري بالاحباط تماما. كما متصفحات IE مايكروسوفت المعتادة هي أصل كل الصداع. كل شيء يعمل بشكل جيد في المتصفحات الأخرى. الحل بسيط: سيكون المستخدم لضبط بيئة IE7 عن طريق الذهاب الى 'أدوات'> 'خيارات الإنترنت'> تبويب "الأمن"> بالنسبة إلى "الإنترنت" و / أو "الإنترانت المحلية" ضبط إعدادات الأمان من خلال النقر على الزر، "مستوى مخصص ..."

وانتقل إلى العقدة 'التنزيلات' '> المطالبة التلقائية لتحميل الملفات "> الاختيار" تمكين "

وهذا ثابتة للمستخدمين.

وعلى أمل أن يساعد.

وكان هذه المشكلة على إنترانت لدينا، المطالبة التلقائية لتحميل لا يعمل بالنسبة لي (واختير بالفعل) ولكن هذا لم ...

وأدوات -> خيارات إنترنت

في التبويب أمان حدد "الإنترانت المحلية" ثم انقر فوق مواقع

وانقر فوق خيارات متقدمة

ونوع "http://your.url.com" وانقر فوق إضافة

وانقر فوق إغلاق -> طيب -> طيب

ونأمل أن يكون هذا يصلح لك جدا؛)

وأنا لا تزال لا يمكن الحصول على مربع الحوار لن تختفي. يحدث هذا عندما يصل التطبيق عام [WebMethod] لجمع المعلومات لتمريرها إلى الصفحة التي تحاول تحميل النتائج إلى التفوق.

            Response.Clear();

            Response.ClearHeaders();
            Response.ClearContent();

            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileNameToUse + "\"");
             Response.CacheControl = "Public";

            Response.Write(output);
            Response.Flush();
            Response.Close();

وهذا أيضا يبدو فقط أن يحدث عند الوصول إلى شبكة الإنترنت الجلوس باستخدام عنوان IP (999.11.1.111 \ default.aspx ....). وهو يعمل عند الوصول إليه عبر loacalhost \ default.aspx

لاختبار إذا كان الأمن هو الذي يسبب هذه المشكلة، تعيين الهدف ل_self. يجب أن يظهر شريط التحذير على رأس IE. إذا كان هذا هو السبب، وتحقق الأمن IE. على وجه التحديد موجه للتحميل جزء.

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