Hello sir/madam, I need a simple code for File upload and Download in jsp using sql server,that uploaded file should be store in database with its content and also while downloading it should be download with its full content...can you please help me... im in urgent i have to implement that in my project plz...plz... help me as soon as possible
1)page.jsp
<%@ page language="java" %> <Html> <HEAD><TITLE>Display file upload form to the user</TITLE></HEAD> <BODY> <FORM ENCTYPE="multipart/form-data" ACTION="upload.jsp" METHOD=POST> <br><br><br> <center><table border="2" > <tr><center><td colspan="2"><p align="center"><B>UPLOAD THE FILE</B><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"> <p align="right"><INPUT TYPE="submit" VALUE="Send File" ></p></td></tr> <table> </center> </FORM> </BODY> </HTML>
2)upload.jsp
<%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <% 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); String saveFile = file.substring(file.indexOf("filename=\"") + 10); saveFile = saveFile.substring(0, saveFile.indexOf("\n")); saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\"")); out.println(saveFile); 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; FileOutputStream fileOut = new FileOutputStream(saveFile); fileOut.write(dataBytes, startPos, (endPos - startPos)); fileOut.flush(); fileOut.close(); %><Br><table border="2"><tr><td><b>You have successfully upload the file by the name of:</b> <% out.println(saveFile);%></td></tr></table> <% Connection connection = null; String connectionURL = "jdbc:mysql://localhost:3306/file"; ResultSet rs = null; PreparedStatement psmnt = null; FileInputStream fis; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); connection = DriverManager.getConnection(connectionURL, "root", "root"); File f = new File(saveFile); psmnt = connection.prepareStatement("insert into file(file_data) values(?)"); fis = new FileInputStream(f); psmnt.setBinaryStream(1, (InputStream)fis, (int)(f.length())); int s = psmnt.executeUpdate(); if(s>0) { System.out.println("Uploaded successfully !"); } else { System.out.println("unsucessfull to upload file."); } } catch(Exception e){e.printStackTrace();} } %> <a href="download.jsp?f=<%=saveFile%>">Download</a>
continue....
3)download.jsp:
<%@page import="java.sql.*"%> <%@page import="java.io.*"%> <%@page import="javax.servlet.*"%> <%! 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; } %> <% ServletOutputStream output = response.getOutputStream(); String connectionURL = "jdbc:mysql://localhost:3306/file"; String Content=new String(""); try{ Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con=DriverManager.getConnection(connectionURL,"root","root"); Statement st=con.createStatement(); ResultSet rst= st.executeQuery("select file_data from file"); if(rst.last()) { Content=rst.getString("file_data"); } con.close(); }catch(Exception e){ System.out.println("Exception caught"+e.getMessage()); } byte requestBytes[] = Content.getBytes(); ByteArrayInputStream bis = new ByteArrayInputStream(requestBytes); response.reset(); 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+"\""); byte[] buf = new byte[1024]; int len; while ((len = bis.read(buf)) > 0){ output.write(buf, 0, len); } bis.close(); response.getOutputStream().flush(); %>
Ads