struts 1.2 文件上传与下载
2009-08-31 17:08
483 查看
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.action;
import com.form.FileForm;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.DispatchAction;
import java.util.Date;
import java.util.Calendar;
import java.util.Vector;
import org.apache.struts.upload.*;
import tools.ListPage;
import java.io.*;
import java.net.URLEncoder;
/**
* MyEclipse Struts
* Creation date: 03-29-2008
*
* XDoclet definition:
* @struts.action path="/fileAction" name="fileForm" parameter="method" scope="request"
*/
public class FileAction extends DispatchAction {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
//文件上传
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
final String fileExt="gif,GIF,jpg,JPG,jpeg,JPEG";
final int maxSize=409600;
FileForm fileForm = (FileForm) form;// TODO Auto-generated method stub
ActionMessages messages=new ActionMessages();
boolean flag=true;
if(fileForm.getName().equals(""))
{
flag=false;
messages.add("nameerror",new ActionMessage("name.error"));
}
if(fileForm.getUser().equals(""))
{
flag=false;
messages.add("usererror",new ActionMessage("user.error"));
}
if(fileForm.getFile().getFileSize()==0)
{
flag=false;
messages.add("fileerror",new ActionMessage("file.error"));
}
else
{
FormFile f=fileForm.getFile();
int fileSize=f.getFileSize();
int i=f.getFileName().indexOf(".");
String ext=f.getFileName().substring(i+1);
if(fileExt.indexOf(ext)==-1)
{
flag=false;
messages.add("fileexterror",new ActionMessage("file.ext.error"));
}
if(fileSize>maxSize)
{
flag=false;
messages.add("filesizeerror",new ActionMessage("file.size.error"));
}
}
HttpSession session=request.getSession();
if(request.getParameter("validate").equals(""))
{
flag=false;
messages.add("validatenull",new ActionMessage("validate.null.error"));
}
else if(!request.getParameter("validate").equals((String)session.getAttribute("valicode")))
{
flag=false;
messages.add("validateerror",new ActionMessage("validate.error"));
}
if(!flag)
{
saveErrors(request,messages);
return mapping.findForward("error");
}
FormFile file=fileForm.getFile();
String dir=servlet.getServletContext().getRealPath("/");
int size=file.getFileSize();
//System.out.println(size);
String fileName=uploadFile(dir,file);
String path="/"+fileName;
fileForm.setPath(path);
fileForm.setSize(file.getFileSize());
fileForm.setTime(new Date().toLocaleString());
ListPage listPage=new ListPage();
listPage.insert(fileForm);
/*
* 若insert方法返回值为flase说明插入数据库失败;
* 调用deleteImage(path)方法删除上传好的图片;
* messages.add("filefailed",new ActionMessage("file.failed"));
* return mapping.findForward("error");
*/
messages.add("filesuccess",new ActionMessage("file.success"));
saveMessages(request,messages);
return mapping.findForward("success");
}
//文件下载
public ActionForward download(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
String path=request.getParameter("path");
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
OutputStream os=null;
InputStream is=null;
String filePath=servlet.getServletContext().getRealPath("/"+path);
try
{
File downloadFile=new File(filePath);
is=new FileInputStream(downloadFile);
bis=new BufferedInputStream(is);
os=response.getOutputStream();
bos=new BufferedOutputStream(os);
response.setHeader("Content-disposition", "attachment;filename="+URLEncoder.encode(path,"utf-8"));
int bytesRead=0;
byte[] buffer=new byte[8192];
while((bytesRead=bis.read(buffer,0,8192))!=-1)
{
bos.write(buffer, 0, bytesRead);
}
bos.flush();
is.close();
bis.close();
os.close();
bos.close();
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
public String uploadFile(String dir,FormFile file)
{
String fname=file.getFileName();
int i=fname.indexOf(".");
String type=fname.substring(i+1);
Calendar calendar = Calendar.getInstance();
String fileName="files/"+calendar.get(Calendar.YEAR) + (calendar.get(Calendar.MONTH)+1) + calendar.get(Calendar.DAY_OF_MONTH) +calendar.get(Calendar.HOUR_OF_DAY)+calendar.get(Calendar.MINUTE)+calendar.get(Calendar.SECOND)+calendar.get(Calendar.MILLISECOND)+Math.round(Math.random()*100*1000)+"."+type;
//System.out.println(fileName);
try
{
InputStream in=file.getInputStream();
String path=dir+fileName;
OutputStream out=new FileOutputStream(path);
int bytesRead=0;
byte[] buffer=new byte[8192];
while((bytesRead=in.read(buffer, 0, 8192))!=-1)
{
out.write(buffer, 0, bytesRead);
}
out.close();
in.close();
}
catch(Exception e)
{
e.printStackTrace();
}
file.destroy();
return fileName;
}
}
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.action;
import com.form.FileForm;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.DispatchAction;
import java.util.Date;
import java.util.Calendar;
import java.util.Vector;
import org.apache.struts.upload.*;
import tools.ListPage;
import java.io.*;
import java.net.URLEncoder;
/**
* MyEclipse Struts
* Creation date: 03-29-2008
*
* XDoclet definition:
* @struts.action path="/fileAction" name="fileForm" parameter="method" scope="request"
*/
public class FileAction extends DispatchAction {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
//文件上传
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
final String fileExt="gif,GIF,jpg,JPG,jpeg,JPEG";
final int maxSize=409600;
FileForm fileForm = (FileForm) form;// TODO Auto-generated method stub
ActionMessages messages=new ActionMessages();
boolean flag=true;
if(fileForm.getName().equals(""))
{
flag=false;
messages.add("nameerror",new ActionMessage("name.error"));
}
if(fileForm.getUser().equals(""))
{
flag=false;
messages.add("usererror",new ActionMessage("user.error"));
}
if(fileForm.getFile().getFileSize()==0)
{
flag=false;
messages.add("fileerror",new ActionMessage("file.error"));
}
else
{
FormFile f=fileForm.getFile();
int fileSize=f.getFileSize();
int i=f.getFileName().indexOf(".");
String ext=f.getFileName().substring(i+1);
if(fileExt.indexOf(ext)==-1)
{
flag=false;
messages.add("fileexterror",new ActionMessage("file.ext.error"));
}
if(fileSize>maxSize)
{
flag=false;
messages.add("filesizeerror",new ActionMessage("file.size.error"));
}
}
HttpSession session=request.getSession();
if(request.getParameter("validate").equals(""))
{
flag=false;
messages.add("validatenull",new ActionMessage("validate.null.error"));
}
else if(!request.getParameter("validate").equals((String)session.getAttribute("valicode")))
{
flag=false;
messages.add("validateerror",new ActionMessage("validate.error"));
}
if(!flag)
{
saveErrors(request,messages);
return mapping.findForward("error");
}
FormFile file=fileForm.getFile();
String dir=servlet.getServletContext().getRealPath("/");
int size=file.getFileSize();
//System.out.println(size);
String fileName=uploadFile(dir,file);
String path="/"+fileName;
fileForm.setPath(path);
fileForm.setSize(file.getFileSize());
fileForm.setTime(new Date().toLocaleString());
ListPage listPage=new ListPage();
listPage.insert(fileForm);
/*
* 若insert方法返回值为flase说明插入数据库失败;
* 调用deleteImage(path)方法删除上传好的图片;
* messages.add("filefailed",new ActionMessage("file.failed"));
* return mapping.findForward("error");
*/
messages.add("filesuccess",new ActionMessage("file.success"));
saveMessages(request,messages);
return mapping.findForward("success");
}
//文件下载
public ActionForward download(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
String path=request.getParameter("path");
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
OutputStream os=null;
InputStream is=null;
String filePath=servlet.getServletContext().getRealPath("/"+path);
try
{
File downloadFile=new File(filePath);
is=new FileInputStream(downloadFile);
bis=new BufferedInputStream(is);
os=response.getOutputStream();
bos=new BufferedOutputStream(os);
response.setHeader("Content-disposition", "attachment;filename="+URLEncoder.encode(path,"utf-8"));
int bytesRead=0;
byte[] buffer=new byte[8192];
while((bytesRead=bis.read(buffer,0,8192))!=-1)
{
bos.write(buffer, 0, bytesRead);
}
bos.flush();
is.close();
bis.close();
os.close();
bos.close();
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
public String uploadFile(String dir,FormFile file)
{
String fname=file.getFileName();
int i=fname.indexOf(".");
String type=fname.substring(i+1);
Calendar calendar = Calendar.getInstance();
String fileName="files/"+calendar.get(Calendar.YEAR) + (calendar.get(Calendar.MONTH)+1) + calendar.get(Calendar.DAY_OF_MONTH) +calendar.get(Calendar.HOUR_OF_DAY)+calendar.get(Calendar.MINUTE)+calendar.get(Calendar.SECOND)+calendar.get(Calendar.MILLISECOND)+Math.round(Math.random()*100*1000)+"."+type;
//System.out.println(fileName);
try
{
InputStream in=file.getInputStream();
String path=dir+fileName;
OutputStream out=new FileOutputStream(path);
int bytesRead=0;
byte[] buffer=new byte[8192];
while((bytesRead=in.read(buffer, 0, 8192))!=-1)
{
out.write(buffer, 0, bytesRead);
}
out.close();
in.close();
}
catch(Exception e)
{
e.printStackTrace();
}
file.destroy();
return fileName;
}
}
相关文章推荐
- struts 实现文件上传与下载
- struts 实现文件上传与下载
- Struts2+jsp上传和下载文件
- Struts中文件的上传与下载
- struts 文件上传下载
- java/struts/Servlet文件下载与ftp文件上传下载
- java框架Struts学习--文件上传与下载
- Struts 1.3中实现文件的上传与下载
- struts 文件上传及文件下载
- Struts文件上传与下载详解 _上传多个文件
- Struts中文件的上传和下载-笔记
- 文件上传下载——通过struts的FormFile上传单个excel文件
- struts中文件的上传和下载
- Struts1.2文件下载(解决中文乱码)
- Struts+Spring+Hibernate环境下文件上传下载示例(上传)
- 用struts实现文件的上传和下载
- struts1.2上传多个文件
- struts2 文件上传和下载
- struts实现文件上传与下载
- jsp/struts1.2/struts2.0文件上传小结