How to upload and download file from desire folder using struts2.0

Let see the Simple Example for upload and download file from desire folder


/****** Action Class for saving file from desire folder ***/
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.tomcat.util.http.fileupload.FileUtils;

import com.opensymphony.xwork2.ActionSupport;
public class WebAction extends ActionSupport {

    private File myfile;
    private String myfileFileName;
    private String myfileContentType;
    private String filePathToSaveInDB;

    public String openHome() {
        return "open";
    }

    public String uploadFileToMyFolder() {
        try {
            ServletContext servletContext = ServletActionContext.getServletContext();
            String path = "MyFolder/";
            //getting the path to where the images will be uploaded
            String filePath = servletContext.getRealPath(path);

            File uploadDir = new File(filePath);
            //if the folder does not exits, creating it
            if (uploadDir.exists() == false) {
                uploadDir.mkdirs();
            }
            setFilePathToSaveInDB(path + "/" + myfileFileName);
            FileUtils.copyFile(myfile, new File(uploadDir, myfileFileName));
         
        } catch (Exception e) {
            System.out.println("Exception : " + e);
            addActionError(e.getMessage());
            return "failure";
        }
        return "success";
    }

// GETTER AND SETTER GOES HERE


Struts.xml file

<action name="uploadFileToMyFolder" method="uploadFileToMyFolder" class="com.debraj.WebAction">
            <interceptor-ref name="fileUpload">
                <param name="maximumSize">2097152</param>
                <param name="allowedTypes">
                              image/png,image/gif,image/jpeg,image/jpg
                </param>
            </interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <result name="success">/pages/web/Success.jsp</result>
            <result name="failure">/pages/web/failure.jsp</result>
</action>



Home.jsp for fire Action



<!DOCTYPE HTML>

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title><s:text name="Struts2 File Upload" /></title>
    </head>
    <body>
        <div>
            <s:form id="uploadFileToMyFolder" name="uploadFileToMyFolder" action="uploadFileToMyFolder" enctype="multipart/form-data">
                <s:text name="Upload Image : " />
                <s:file name="myfile" id="myfile"/>
                <s:submit name="submit"/>
            </s:form>
        </div>
    </body>
</html>


Success.jsp


<!DOCTYPE HTML>

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title><s:text name="Struts2 File Upload Success" /></title>
    </head>
    <body>
        <div>
            <s:actionmessage />
            <s:property value="myfile"/><br />
            <s:property value="myfileFileName"/><br />
            <s:property value="myfileContentType"/><br />
            <img src="<s:text name='%{filePathToSaveInDB}'/>"/><br />
           
        </div>
    </body>
</html>


fail.jsp


<!DOCTYPE HTML>

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title><s:text name="Struts2 File Upload Failure" /></title>
    </head>
    <body>
        <div>
            <s:actionerror />
        </div>
    </body>
</html>


For Downloading File form desire Folder



package pankaj;
import java.sql.*;
import java.io.*;
import java.util.*;
public class Download {

static ArrayList arr=new ArrayList();


private static String assign_name,submit_date,attach1,reg_no;

public ArrayList getArr() {
return arr;
}

public void setArr(ArrayList arr) {
this.arr = arr;
}

public String getReg_no() {
return reg_no;
}

public void setReg_no(String reg_no) {
this.reg_no = reg_no;
}

public String getAssign_name() {
return assign_name;
}

public void setAssign_name(String assign_name) {
this.assign_name = assign_name;
}

public String getSubmit_date() {
return submit_date;
}

public void setSubmit_date(String submit_date) {
this.submit_date = submit_date;
}

public static String getAttach1() {
return attach1;
}

public static void setAttach1(String attach1) {
Download.attach1 = attach1;
}

public static ArrayList dd(String n)throws Exception
{
System.out.println("NAME"+n);
Class.forName("oracle.jdbc.OracleDriver");
     Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","oracle");
     Statement st=con.createStatement();
     //ResultSet rs=st.executeQuery("select assign.attach1,assign.assign_name,assign.submitdate from stureg inner join assign on  assign.classname  = stureg.classname and assign.sectionname=stureg.section where stureg.username='"+n+"'");
    ResultSet rs1=st.executeQuery("SELECT * FROM STUREG WHERE USERNAME='"+n+"'");
    String classname=null;
    String section=null;
    while(rs1.next())
    {
    classname=rs1.getString("CLASSNAME");
    section=rs1.getString("SECTION");
    }
    ResultSet rs=st.executeQuery("SELECT * FROM ASSIGN WHERE CLASSNAME='"+classname+"' AND SECTIONNAME='"+section+"'");
     while(rs.next())
     {

       arr.add(rs.getString("ASSIGN_NAME")+"@@"+rs.getString("SUBMITDATE")+"@@"+rs.getString("ATTACH1")+"@@"+rs.getString("SUBJECT"));
   
     }
     return arr;
}



}


download.jsp



<%@page import="java.sql.*"%>
<%@page import="pankaj.Download,java.util.*" %>
<%@taglib uri="/struts-tags" prefix="s" %>

<%
String n=(String)session.getAttribute("user");
out.println("NAme:"+n);
          ArrayList arr;
          arr=Download.dd(n);
        /* arr=Download.dd(request.getParameter("ver"));
         
           //out.println(request.getParameter("ver"));
         
         
           Class.forName("oracle.jdbc.OracleDriver");
     Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","oracle");
     Statement st=con.createStatement();
     Download d=new Download();
     ResultSet rs1=st.executeQuery("SELECT * FROM STUREG WHERE USERNAME='"+n+"'");
    String classname=null;
    String section=null;
    while(rs1.next())
    {
    classname=rs1.getString("CLASSNAME");
    section=rs1.getString("SECTION");
    }
          //String s=d.getReg_no();
           //out.println("NAME:"+s);
     ResultSet rs=st.executeQuery("select Attach1 from assign where SECTIONNAME='"+section+"' and CLASSNAME='"+classname+"'");
   
     rs.next();*/
   
   
           
   %>
 
 
 
 
   <table class="normal-table m-bot-30" cellspacing='0'>
        <thead>
          <tr>
            <th width="20%" class="first">Assignment Name</th>
            <th width="23%">Submit Date</th>
            <th width="20%">Subject</th>
            <th colspan="2"></th>
           
          </tr>
        </thead>
       
         <tbody>
       
         <%
        for(Object obj:arr)
        {
        String newlst1[]=obj.toString().split("@@");
       
         %>
         <tr>
         <td><%=newlst1[0] %></td>
         <td><%=newlst1[1] %></td>
         <td><%=newlst1[3] %></td>
          <td width="20%" ><a href="down.jsp?file=<%=newlst1[2] %>">Download</a></td>
       
         <%}
         arr.clear();
          %>
         
         
         
       
        </tbody>
       
        </table>
         

            </div>


Read file from desire folder

down.jsp


<%
String filename = request.getParameter("file");
out.println("File"+filename);
  String filepath = "C:/Server/webapps/School/UploadFile/";
  response.setContentType("APPLICATION/OCTET-STREAM");
  response.setHeader("Content-Disposition","attachment; filename"+filename);

  java.io.FileInputStream fileInputStream=new java.io.FileInputStream(filepath+filename);

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













1 comments:

Post a Comment

© Copyright 2013 Java EveryThing About Java (PANKAJ TIWARI) - All Rights Reserved - Powered by Blogger.com