2016-08-04 16 views
-3

Ich versuche, Dateien zum Download auf JSP-Seite aus einem Ordner aufzulisten. Ich verwende jsp-Servlet-Kombination. Ich brauche dringend Hilfe bei diesem. Bitte beachten Sie - ich jsp-Servlet-Kombination auf meinem eigenenDateien von einem Ordner zum Download auflisten

Servlet-Code

package com.candidjava.servlet.download; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class DownloadServlet extends HttpServlet { 
private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    //String filename = "documents.txt"; 
    String filepath = "d:\\uploads\\"; 
      for(File f:new File(filepath).listFiles()){ 


    response.setContentType("APPLICATION/OCTET-STREAM"); 
    response.setHeader("Content-Disposition", "attachment; filename=\"" 
      + f + "\""); 

    // use inline if you want to view the content in browser, helpful for 
    // pdf file 
    // response.setHeader("Content-Disposition","inline; filename=\"" + 
    // filename + "\""); 
    FileInputStream fileInputStream = new FileInputStream(filepath 
      + f); 

    int i; 
    while ((i = fileInputStream.read()) != -1) { 
     out.write(i); 
    } 
    fileInputStream.close(); 
    out.close(); 
} 
    } 
} 

JSP Seite

<%-- 
Document : index 
Created on : 28 Jul, 2016, 3:50:33 PM 
Author  : Admin 
--%> 

    <%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
Click on the link to download: 
    <a href="DownloadServlet">Download a File</a> 
</body> 
</html> 
+1

Sie haben Java-API 'file.listFiles();' und 'file.list()' –

+0

Hallo Viswanath, könnten Sie bitte Ihren Standpunkt erläutern? – NVJ

Antwort

0

Ich war in der Lage zu kommen mit einer Lösung halten will auf diesem - Code unten einfügen, falls jemand dasselbe erreichen möchte. Vielen Dank!!!

JSP-Code

<%-- 
Document : ctsDownloadDocuments 
Created on : 5 Aug, 2016, 2:18:17 PM 
Author  : Admin 
--%> 

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 
<%@ page import="java.io.*,java.util.*,java.sql.*"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> 
<!DOCTYPE html> 
<html> 
<head> 

    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 



</head> 

<body> 
      <form> 
             <div class="row"> 
              <div class="col-lg-25"> 
               <div class="panel panel-success" style="width: auto;" > 
                <div class="panel-heading" style="width: auto;" > 
                 <h3 class="panel-title" style="width: auto;" ><i class="fa fa-money fa-fw"></i> Case History</h3> 
                </div> 
                <div style="overflow:scroll;height:400px;width:auto; overflow:auto"> 
                 <table class="table table-bordered table-hover table-striped" id="example" class="display" cellspacing="0" width="100%"> 
                  <thead> 
                   <tr> 


                    <th>FileName</th> 

                                     </tr> 
                  </thead> 

                  <tbody> 
                   <c:forEach items="${casedocuments}" var="casedocument"> 
                    <tr> 

                     <td><a href="CaseDocumentController?action=download&FileName=<c:out value="${casedocument.cdd_DocumentName}"/>">Download</a></td> 


                    </tr> 
                   </c:forEach> 
                  </tbody> 
                 </table> 
                </div> 
               </div> 
              </div> 
             </div> 


                    </form> 

        </div> 




</body> 

Servlet-Code

import java.io.File; 
import java.io.IOException; 
import java.util.List; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.commons.fileupload.FileItem; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 

import com.cts.dao.CaseDocumentDAO; 
import com.cts.model.CaseDocument; 
import com.cts.model.CaseDetail; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import javax.servlet.http.HttpSession; 

public class CaseDocumentController extends HttpServlet { 

private static final long serialVersionUID = 1L; 
private static String INSERT_OR_EDIT = "/ctsCaseDocuments.jsp"; 
private static String LIST_CASEDETAIL = "/ctsCaseDocuments.jsp"; 
private static String LIST_CASEDDOCUMENTS = "/ctsDownloadDocuments.jsp"; 
private CaseDocumentDAO dao; 

private final String UPLOAD_DIRECTORY = "d:/uploads"; 

public CaseDocumentController() { 
    super(); 
    dao = new CaseDocumentDAO(); 

} 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String forward = ""; 
    String action = request.getParameter("action"); 

    if (action.equalsIgnoreCase("download")) { 

     response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    String filename = request.getParameter("FileName");; 
    String filepath = "d:\\uploads\\"; 



    response.setContentType("APPLICATION/OCTET-STREAM"); 
    response.setHeader("Content-Disposition", "attachment; filename=\"" 
      + filename + "\""); 

    // use inline if you want to view the content in browser, helpful for 
    // pdf file 
    // response.setHeader("Content-Disposition","inline; filename=\"" + 
    // filename + "\""); 
    FileInputStream fileInputStream = new FileInputStream(filepath 
      + filename); 

    int i; 
    while ((i = fileInputStream.read()) != -1) { 
     out.write(i); 
    } 
    fileInputStream.close(); 
    out.close(); 
    } 

    else if (action.equalsIgnoreCase("listDocument")) { 
       forward = LIST_CASEDETAIL; 
       request.setAttribute("casemasters", dao.getAllCaseMaster()); 
    } 

    else 
    { 
       forward = LIST_CASEDDOCUMENTS; 
       request.setAttribute("casemasters", dao.getAllCaseMaster()); 
       request.setAttribute("casedocuments", dao.getAllCaseDocuments()); 
    } 

    RequestDispatcher view = request.getRequestDispatcher(forward); 
    view.forward(request, response); 
} 


} 
Verwandte Themen