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();
%>
/****** 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:
thank you sir..
ReplyPost a Comment