Create one or more folder .inside it we can upload and download multiple files
Here is an application that will upload the file and save to database. The uploaded files will then displayed on the browser and will allow the user to download any file.
1)page.jsp:
<%@ page language="java" %> <HTML> <FORM ENCTYPE="multipart/form-data" ACTION="uploadandstore.jsp" METHOD=POST> <center> <table border="0" bgcolor=#ccFDDEE> <tr> <center><td colspan="2" align="center"><B>UPLOAD THE FILE</B><center></td> </tr> <tr><td colspan="2" align="center"> </td></tr> <tr><td><b>Choose the file To Upload:</b></td> <td><INPUT NAME="file" TYPE="file"></td> </tr> <tr><td colspan="2" align="center"> </td></tr> <tr><td colspan="2" align="center"><input type="submit" value="Send File"> </td></tr> <table> </center> </FORM> </HTML>
2)uploadandstore.jsp:
<%@page import="java.io.*, java.sql.*"%> <% String saveFile=""; String contentType = request.getContentType(); if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) { DataInputStream in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength(); byte dataBytes[] = new byte[formDataLength]; int byteRead = 0; int totalBytesRead = 0; while (totalBytesRead < formDataLength) { byteRead = in.read(dataBytes, totalBytesRead,formDataLength); totalBytesRead += byteRead; } String file = new String(dataBytes); saveFile = file.substring(file.indexOf("filename=\"") + 10); saveFile = saveFile.substring(0, saveFile.indexOf("\n")); saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\"")); int lastIndex = contentType.lastIndexOf("="); String boundary = contentType.substring(lastIndex + 1,contentType.length()); int pos; pos = file.indexOf("filename=\""); pos = file.indexOf("\n", pos) + 1; pos = file.indexOf("\n", pos) + 1; pos = file.indexOf("\n", pos) + 1; int boundaryLocation = file.indexOf(boundary, pos) - 4; int startPos = ((file.substring(0, pos)).getBytes()).length; int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length; saveFile="C:/UploadedFiles/"+saveFile; File f = new File(saveFile); FileOutputStream fileOut = new FileOutputStream(f); fileOut.write(dataBytes, startPos, (endPos - startPos)); fileOut.flush(); fileOut.close(); %> <b>You have successfully upload the file by the name of:</b> <% out.println(saveFile); } %> <a href="viewFiles.jsp">View Files</a>
3)viewFiles.jsp:
<%@ page import="java.io.*"%> <html> <table> <tr><th>File Name</th><th>Download File</th><th>Delete File</th> <% File f = new File("C:/UploadedFiles"); File[] files = f.listFiles(); for(int i=0;i<files.length;i++){ String name=files[i].getName(); String path=files[i].getPath(); %> <tr><td><%=name%></td><td><a href="download.jsp?f=<%=path%>">Download File</a></td></tr> <% } %> </table> </html>
continue..
4)download.jsp:
<%@page import="java.io.*,java.net.*"%> <%! public static String getMimeType(String fileUrl) throws java.io.IOException, MalformedURLException { String type = null; URL u = new URL(fileUrl); URLConnection uc = null; uc = u.openConnection(); type = uc.getContentType(); return type; } %> <% String file=request.getParameter("f"); File f = new File (file); String filename=f.getName(); String type=getMimeType("file:"+file); response.setContentType (type); response.setHeader ("Content-Disposition", "attachment; filename=\""+filename+"\""); String name = f.getName().substring(f.getName().lastIndexOf("/") + 1,f.getName().length()); InputStream in = new FileInputStream(f); ServletOutputStream outs = response.getOutputStream(); int bit = 256; int i = 0; try { while ((bit) >= 0) { bit = in.read(); outs.write(bit); } } catch (IOException ioe) { ioe.printStackTrace(System.out); } outs.flush(); outs.close(); in.close(); %>
Ads