سؤال

نحن تشغيل القط ، ونحن توليد ملفات 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 () ؛

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