Jsp حجم ملف التحميل
سؤال
نحن تشغيل القط ، ونحن توليد ملفات pdf على الطاير.وأنا لم يكن لديك حجم الملف قبل اليد, لذلك أنا لا يمكن direcly الرابط إلى ملف على الخادم.لذا ترسل مباشرة الإخراج.
response.setContentType("application/force-download");
OutputStream o = response.getOutputStream();
وبعدها مباشرة خرج إلى هذا OutputStream.
المشكلة الوحيدة هي أن المتلقي لا تحصل على حجم الملف ، لذلك لا أعرف كم من الوقت سوف يستغرق تحميل.هل هناك طريقة لمعرفة الاستجابة كيف كبيرة الملف ؟
تحرير أنا لا أعرف حجم الملف ، أنا فقط غير قادر اقول تيار كم حجم الملف.
المحلول
استجابة الكائن يجب أن يكون setContentLength الطريقة:
// Assumes response is a ServletResponse
response.setContentLength(sizeHere);
نصائح أخرى
تسلسل PDF تيار بايت إلى ملف أو في صفيف بايت حساب حجمها تعيين حجم والكتابة إلى دفق إخراج.
وأعتقد أنك ansering على qustion الذاتية الخاصة بك:اقتباس:وأنا لم يكن لديك حجم الملف قبل اليد ، لذا ترسل مباشرة الإخراج.
إذا لم يكن لديك حجم كنت غير قادر على إرسالها....
لماذا لا يتم إنشاء ملف PDF في ملف temp النظام أو ذاكرة الوصول العشوائي-قاعدة نظام الملفات أو الذاكرة خريطة الملف على الطاير.ثم يمكنك الحصول على حجم الملف.
استجابة.setContentType("التطبيق/القوة التحميل");استجابة.setContentLength(sizeHere);OutputStream o = رد.getOutputStream () ؛