Размер файла загрузки Jsp
Вопрос
Мы запускаем tomcat и генерируем PDF-файлы "на лету".У меня нет заранее заданного размера файла, поэтому я не могу напрямую ссылаться на файл на сервере.Поэтому я напрямую отправляю выходные данные.
response.setContentType("application/force-download");
OutputStream o = response.getOutputStream();
И затем я напрямую вывожу данные в этот OutputStream.
Единственная проблема заключается в том, что получатель не получает размер файла, поэтому он не знает, сколько времени займет загрузка.Есть ли способ сообщить в ответе, насколько велик файл?
Редактировать Я знаю размер файла, я просто не могу сказать ПОТОКУ, насколько велик файл.
Решение
Объект ответа должен иметь setContentLength ( Длина набора ) способ:
// Assumes response is a ServletResponse
response.setContentLength(sizeHere);
Другие советы
Сериализуйте поток байтов PDF в файл или в виде массива байтов, вычислите его размер, установите размер и запишите его в выходной поток.
Я верю, что ты сам решаешь этот вопрос:Цитата:У меня нет заранее заданного размера файла, поэтому я напрямую отправляю выходные данные.
Если у вас нет нужного размера, вы не сможете его отправить....
Почему бы не сгенерировать PDF-файл во временной файловой системе, или в файловой системе на базе оперативной памяти, или в файле карты памяти "на лету"?затем вы можете получить размер файла.
response.setContentType("приложение / принудительная загрузка");ответ.setContentLength(размер здесь);OutputStream o = ответ.getOutputStream();