note: please create a folder 'myfiles' inside webcontent folder of your dynamic-web-project and store some JPEG/JAVA/pdf files inside it
note: save this code inside index.html inside webcontent folder
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="show-files">show files</a>
</body>
</html>
note: save this class inside beans package, name of file should be ShowFiles .java
package beans;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/show-files")
public class ShowFiles extends HttpServlet
{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
// get the object of context
ServletContext ctx = super.getServletContext();
// get the path of resource folder
String path = ctx.getRealPath("/myfiles");
// denote this path
File f = new File(path);
// get the list of all the files inside this path
File[] files = f.listFiles();
// get object of session
HttpSession session = request.getSession();
// store array (of file class) inside session
session.setAttribute("fa",files);
// store path (folder in which the files are stored) inside session
session.setAttribute("fp",path);
pw.println("<table border=1 align=center>");
for (int i = 0; i < files.length; i++)
{
pw.println("<tr>");
// get the file name
String filename = files[i].getName();
// get the size of file
long filesize = files[i].length();
// get the last index of . inside filename
int index = filename.lastIndexOf(".");
// get a substring from index + 1 (for file extension)
String ext = filename.substring(index + 1);
pw.println("<td>");
pw.println(i + 1);
pw.println("</td>");
pw.println("<td>");
pw.println(filename);
pw.println("</td>");
pw.println("<td>");
pw.println(ext);
pw.println("</td>");
pw.println("<td>");
pw.println(filesize);
pw.println("</td>");
pw.println("<td>");
pw.println("<a href=show-file-data?c=0&file_id="+i+">view</a>");
pw.println("</td>");
pw.println("<td>");
pw.println("<a href=show-file-data?c=1&file_id="+i+">download</a>");
pw.println("</td>");
pw.println("</tr>");
}
pw.println("</table>");
}
}
note: save this class inside beans package, name of file should be ShowFileData .java
package beans;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/show-file-data")
public class ShowFileData extends HttpServlet
{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// get the data associated with the url
String click = request.getParameter("c"),
id = request.getParameter("file_id");
// convert string into int
int index = Integer.parseInt(id);
// get the object of session
HttpSession session = request.getSession();
// get the array of file and file path
File[] filesArray = (File[]) session.getAttribute("fa");
String filepath = (String) session.getAttribute("fp");
// get the file name from the array of files
String fileName = filesArray[index].getName();
// check for file extensions
if(fileName.endsWith(".java"))
{
// MIME for java
response.setContentType("text/plain");
}
else if(fileName.endsWith(".pdf"))
{
// MIME for pdf
response.setContentType("application/pdf");
}
else if(fileName.endsWith(".jpg") || fileName.endsWith(".gif") ||
fileName.endsWith(".jpeg"))
{
// MIME for images
response.setContentType("image/jpeg");
}
// specify the browser
if(click.equals("0"))
{
// show the file in browser itself
response.setHeader("Content-Disposition"," inline; filename="+fileName);
}
else
{
// download the attachment at the client side
response.setHeader("Content-Disposition"," attachment; filename="+fileName);
}
// open the file in read mode
FileInputStream fi = new FileInputStream(filepath+"\\"+fileName);
// get the size of file (opened in read mode)
int filesize = fi.available();
// create an array of byte to store the file data
byte[] buffer = new byte[filesize];
// fetch file data and store it inside the array of byte (ie. buffer)
fi.read(buffer);
// get the object of ServletOutputStream
ServletOutputStream sos = response.getOutputStream();
// send the data of array to the client side (ie. web browser)
sos.write(buffer);
}
}
note: save this code inside index.html inside webcontent folder
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="show-files">show files</a>
</body>
</html>
note: save this class inside beans package, name of file should be ShowFiles .java
package beans;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/show-files")
public class ShowFiles extends HttpServlet
{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
// get the object of context
ServletContext ctx = super.getServletContext();
// get the path of resource folder
String path = ctx.getRealPath("/myfiles");
// denote this path
File f = new File(path);
// get the list of all the files inside this path
File[] files = f.listFiles();
// get object of session
HttpSession session = request.getSession();
// store array (of file class) inside session
session.setAttribute("fa",files);
// store path (folder in which the files are stored) inside session
session.setAttribute("fp",path);
pw.println("<table border=1 align=center>");
for (int i = 0; i < files.length; i++)
{
pw.println("<tr>");
// get the file name
String filename = files[i].getName();
// get the size of file
long filesize = files[i].length();
// get the last index of . inside filename
int index = filename.lastIndexOf(".");
// get a substring from index + 1 (for file extension)
String ext = filename.substring(index + 1);
pw.println("<td>");
pw.println(i + 1);
pw.println("</td>");
pw.println("<td>");
pw.println(filename);
pw.println("</td>");
pw.println("<td>");
pw.println(ext);
pw.println("</td>");
pw.println("<td>");
pw.println(filesize);
pw.println("</td>");
pw.println("<td>");
pw.println("<a href=show-file-data?c=0&file_id="+i+">view</a>");
pw.println("</td>");
pw.println("<td>");
pw.println("<a href=show-file-data?c=1&file_id="+i+">download</a>");
pw.println("</td>");
pw.println("</tr>");
}
pw.println("</table>");
}
}
------------------------------------------------------------------------------------------------
note: save this class inside beans package, name of file should be ShowFileData .java
package beans;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/show-file-data")
public class ShowFileData extends HttpServlet
{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// get the data associated with the url
String click = request.getParameter("c"),
id = request.getParameter("file_id");
// convert string into int
int index = Integer.parseInt(id);
// get the object of session
HttpSession session = request.getSession();
// get the array of file and file path
File[] filesArray = (File[]) session.getAttribute("fa");
String filepath = (String) session.getAttribute("fp");
// get the file name from the array of files
String fileName = filesArray[index].getName();
// check for file extensions
if(fileName.endsWith(".java"))
{
// MIME for java
response.setContentType("text/plain");
}
else if(fileName.endsWith(".pdf"))
{
// MIME for pdf
response.setContentType("application/pdf");
}
else if(fileName.endsWith(".jpg") || fileName.endsWith(".gif") ||
fileName.endsWith(".jpeg"))
{
// MIME for images
response.setContentType("image/jpeg");
}
// specify the browser
if(click.equals("0"))
{
// show the file in browser itself
response.setHeader("Content-Disposition"," inline; filename="+fileName);
}
else
{
// download the attachment at the client side
response.setHeader("Content-Disposition"," attachment; filename="+fileName);
}
// open the file in read mode
FileInputStream fi = new FileInputStream(filepath+"\\"+fileName);
// get the size of file (opened in read mode)
int filesize = fi.available();
// create an array of byte to store the file data
byte[] buffer = new byte[filesize];
// fetch file data and store it inside the array of byte (ie. buffer)
fi.read(buffer);
// get the object of ServletOutputStream
ServletOutputStream sos = response.getOutputStream();
// send the data of array to the client side (ie. web browser)
sos.write(buffer);
}
}
The Men Who Knew Infinity In Java.
ReplyDelete