هل من الضروري ضبط طول المحتوى في رأس الرد الخاص بي؟

StackOverflow https://stackoverflow.com/questions/1412623

سؤال

أقوم بمراجعة بعض التعليمات البرمجية القديمة ووجدت خطأً يتسبب في بقاء الاستجابة إلى أجل غير مسمى.

ها هي الفكرة الأساسية:

Response.Content-Type = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename" & someFileName)
Response.AddHeader("Content-Length", someStoredLength)
Response.BinaryWrite(someByteArray)
Response.Flush()
Response.End()

المشكلة هي أن someStoredLength أكبر بكثير من الحجم الفعلي لـ someByteArray، لذلك يبقى العميل هناك في انتظار تنزيل الملف بينما يدور المتصفح.

أفكر فقط في إزالة AddHeader الذي يحدد طول المحتوى، لأنه عندما أفعل ذلك يبدو أن كل شيء يعمل بشكل جيد، لكنني قلق من أنني لا أفهم شيئًا ما.

هل من المناسب بالنسبة لي إزالة AddHeader أم يجب أن أجد طريقة أفضل للتعامل مع هذه المشكلة؟

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

المحلول

وتغيير خط طول المحتوى إلى ما يلي:

Response.AddHeader("Content-Length", someByteArray.Length.ToString())

نصائح أخرى

التطبيق الخاص بك يجب (قم بالتمرير لأسفل إلى طول المحتوى) حدده، ومع ذلك، فهو ليس مطلوبًا بشكل صارم.

وهنا أ مناقشة لائقة من الخيارات الممكنة.

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