2012-02-23 2 views
0

1) Я хочу загрузить pdf-файл, который хранится в oracle db как blob. Но я получаю файл 0 kb. Я не сделал этого раньше. Так PLS помочь на кнопку нажмите сервлет вызывает другой сервлет, который выполняет загрузку. Это код, который я написал для загрузки файла.нет данных после загрузки blob pdf file

protected void processRequest(HttpServletRequest request, HttpServletResponse resp) 
throws ServletException, IOException { 
    resp.setContentType("text/html;charset=UTF-8"); 
    try { 
     OutputStream outStream = resp.getOutputStream(); 
     List file=(List)request.getAttribute("file"); 
      String fileName=null; 
byte[] fileBytes=null; 
for (int i=0;i<file.size();i++) 
     { 
      Map objec=(Map) file.get(i); 
      fileName=(String)objec.get("fileName"); 
      fileBytes=(byte[])objec.get("fileBytes"); 
      } 
String fileType = fileName.substring(fileName.indexOf(".")+1,fileName.length()); 
    if (fileType.trim().equalsIgnoreCase("pdf")) 
{ 
resp.setContentType("application/pdf"); 
} 

resp.setHeader("Content-Disposition","attachment; filename=\""+fileName+"\""); 
resp.setHeader("cache-control", "must-revalidate"); 
System.out.println(fileBytes); 
} finally { 
     // out.close(); 
    } 
} 
ServletOutputStream outs = response.getOutputStream(); 

outs.write(fileBytes); 
outs.flush(); 
outs.close(); 

Пожалуйста, сообщите мне, где я ошибся. Как я могу загрузить полный pdf-файл с данными?

2) Допустим, что этот pdf-файл представляет собой полный отчет о деталях клиента. Предполагается, что он получил 300 страниц. и для каждого клиента неизвестны страницы. ex для клиента Antony его страница нет в этом pdf 4 и 5. Я хочу только загрузить файл с этими 2 страницами. Как я могу выполнить эту задачу?

UPDATE: jtahlborn решить мою первую проблему, которая была очень глупо ... просто нужно было добавить следующие строки

resp.getOutputStream().write(fileBytes); 
resp.getOutputStream().flush(); 
resp.getOutputStream().close(); 

Так я, наконец, удалось с этим. Теперь pls some1 помогите мне в моей второй проблеме. Я хочу загрузить страницы, для которых страница no известна из pdf и сохраняется как отдельный pdf-файл. На самом деле это pdf, который я хочу скачать. Не первый pdf. Я просто сделал это, чтобы научиться загружать файл blob.

+1

Задайте свой второй вопрос как отдельный вопрос. Stack Overflow - это платформа для предоставления ответов на вопросы. Но единственным способом определения правильных ответов является вопрос по одному вопросу. – APC

ответ

3

1) Вы печатаете байты вместо того, чтобы помещать их в ответ. например resp.getOutputStream().write(fileBytes);

2) вам, вероятно, понадобится какая-то библиотека разбора/редактирования PDF, которая позволит вам разделить файл PDF. поочередно, вы можете использовать отдельный автономный pdf-редактор для предварительного разделения PDF-файла на файлы клиента и хранить их отдельно в db.

+0

извините..и забыли добавить оставшийся код .... ServletOutputStream outs = response.getOutputStream(); outs.write (fileBytes); outs.flush(); outs.close(); –

+0

Я отредактировал эту тему и добавил строки, в которых я печатал файл ..pls check .. –

+0

oh YES mr jtahlborn .... 1-я проблема решена ... большое спасибо ... теперь я волновался за вторую проблема –

Смежные вопросы