web文件上传【经典】

原创 2012年03月26日 22:52:09
package com.chinasoft.action;


import java.util.Map;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;


import com.opensymphony.xwork2.ActionSupport;


public class CommonAction  extends ActionSupport implements ServletResponseAware,
ServletRequestAware, SessionAware, RequestAware {


private HttpServletRequest request;
private HttpServletResponse response;
private HttpSession session;
@SuppressWarnings("unchecked")
private Map requestmap;
@SuppressWarnings("unchecked")
private Map sessionmap;


public HttpServletRequest getRequest() {
return request;
}


public void setRequest(HttpServletRequest request) {
this.request = request;
}


public HttpServletResponse getResponse() {
return response;
}


public void setResponse(HttpServletResponse response) {
this.response = response;
}


@SuppressWarnings("unchecked")
public Map getRequestmap() {
return requestmap;
}


@SuppressWarnings("unchecked")
public void setRequestmap(Map requestmap) {
this.requestmap = requestmap;
}


@SuppressWarnings("unchecked")
public Map getSessionmap() {
return sessionmap;
}


@SuppressWarnings("unchecked")
public void setSessionmap(Map sessionmap) {
this.sessionmap = sessionmap;
}


public HttpSession getSession() {
return session;
}


public void setSession(HttpSession session) {
this.session = session;
}


public void setServletResponse(HttpServletResponse arg0) {
this.response = arg0;
}


public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
this.session = request.getSession();
}


@SuppressWarnings("unchecked")
public void setSession(Map arg0) {
this.sessionmap = arg0;
}


@SuppressWarnings("unchecked")
public void setRequest(Map arg0) {
this.requestmap = arg0;
}


}





package com.chinasoft.action;


import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


import org.apache.struts2.ServletActionContext;


import com.chinasoft.db.UFile;
import com.opensymphony.xwork2.ActionSupport;


@SuppressWarnings("serial")
public class DownloadAction extends ActionSupport {


private String fileName;// 现在文件名称fileName


private String filepath;// 下载文件路径


private List<UFile> ufileList = new ArrayList<UFile>();


public List<UFile> getUfileList() {
return ufileList;
}


public void setUfileList(List<UFile> ufileList) {
this.ufileList = ufileList;
}






public String getFileName() {
return fileName;
}


public void setFileName(String fileName) {
this.fileName = fileName;
}


public String getFilepath() {
return filepath;
}


public void setFilepath(String filepath) {
this.filepath = filepath;
}


public String allFile() {
String downpathString = ServletActionContext.getServletContext()
.getRealPath(filepath);
File file = new File(downpathString);
File[] fs = file.listFiles();
for (File f : fs) {
UFile uFile = new UFile();
uFile.setName(f.getName());
uFile.setSize(f.length());
ufileList.add(uFile);
}


return "success";
}



public InputStream getInputStream(){
try {
String downName=new String(fileName.getBytes("8859_1"),"UTF-8");
return ServletActionContext.getRequest().getSession().getServletContext().getResourceAsStream(filepath+"/"+downName);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

}





package com.chinasoft.action;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;




import org.apache.struts2.ServletActionContext;


import com.opensymphony.xwork2.ActionSupport;


public class SaveFile extends ActionSupport {


/**

*/
private static final long serialVersionUID = -4303075894481781406L;
private static final int BUFFER_SIZE = 16 * 1024;
private File saveFile;
private String saveFileFileName;
private String saveFileContentType;


public File getSaveFile() {
return saveFile;
}


public void setSaveFile(File saveFile) {
this.saveFile = saveFile;
}


public String getSaveFileFileName() {
return saveFileFileName;
}


public void setSaveFileFileName(String saveFileFileName) {
this.saveFileFileName = saveFileFileName;
}


public String getSaveFileContentType() {
return saveFileContentType;
}


public void setSaveFileContentType(String saveFileContentType) {
this.saveFileContentType = saveFileContentType;
}


/**
* 复制文件
* @param src
* @param dsc
*/
private static void copy(File src,File dsc){
InputStream in=null;
OutputStream out=null;
try {
in=new BufferedInputStream(new FileInputStream(src),BUFFER_SIZE);
out=new BufferedOutputStream(new FileOutputStream(dsc),BUFFER_SIZE);
byte[] buffer=new byte[BUFFER_SIZE];
while(in.read(buffer)>0){
out.write(buffer);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(in!=null){
in.close();
}
if(out!=null){
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}


/**
* 获取文件的扩展名
* @param fileName
* @return
*/
@SuppressWarnings("unused")
private static String returnExtension(String fileName){
int pos=fileName.lastIndexOf(".");
return fileName.substring(pos);
}

/**
* 文件上传
* @return
*/
public String saveFile(){
this.saveFileFileName=new Date().getTime()+returnExtension(this.saveFileFileName);
File filePath=new File(ServletActionContext.getServletContext().getRealPath("/uploadFiles"));//获取服务器路径,而不是本地路径
if(!filePath.exists()){
filePath.mkdir();
}
File uploadFile=new File(filePath+"/"+this.saveFileFileName);
copy(this.saveFile, uploadFile);
return "success";
}

public static void main(String[] args) {
String string="abc.jps";
System.out.println(returnExtension(string));
}


}






<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="file" extends="struts-default">
<action name="savefile"
class="com.chinasoft.action.SaveFile" method="saveFile">
<result name="success">/index.jsp</result>
</action>

<action name="allfile"
class="com.chinasoft.action.DownloadAction" method="allFile">
<param name="filepath">/uploadFiles</param>
<result name="success">/file_list.jsp</result>
</action>

<action name="downloadfile"
class="com.chinasoft.action.DownloadAction">
<param name="filepath">/uploadFiles</param>
<result type="stream">
        <param name="inputStream">getInputStream</param><!--getInputStream和下载方法名一样-->
        <param name="contentDisposition">attachment;filename="${fileName}";</param>        
       </result>


</action>
</package>
</struts>


相关文章推荐

web文件上传

  • 2015年07月18日 16:17
  • 170KB
  • 下载

web开发文件上传

  • 2015年10月08日 14:34
  • 7KB
  • 下载

经典~怎样通过php将本地的文件上传到服务器上? 不会的来学学吧!

PHP 文件上传 通过 PHP,可以把文件上传到服务器。 创建一个文件上传表单 允许用户从表单上传文件是非常有用的。 请看下面这个供上传文件的 HTML 表单: File...

web文件上传原理讲解与代码

  • 2013年08月31日 19:53
  • 781KB
  • 下载

struts文件上传(web project)

  • 2010年06月10日 16:24
  • 17KB
  • 下载

SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】

不知不觉已经把Spring的基础部分讲解完了,所讲述的都是在项目中经常用到的东西,是经得住考验的,接下来的部分主要是要讲述使用SpringMVC进行的文件上传、处理Ajax请求、自定义拦截器功能的实现...

zen_web servlet文件上传

  • 2012年09月08日 18:54
  • 219KB
  • 下载

web文件上传原理讲解与代码

  • 2016年06月24日 13:26
  • 718KB
  • 下载

经典的PHP文件上传类_代码

一个较经典的PHP文件上传类代码,虽然很老,但用的人还是挺多的,当初自己在用PHP做站的时候,就用了这个类。包括有调用的例子,对新手也友好,这个类可以上传图片和其它格式的文件,看你怎么设置了。另外这个...
  • longjef
  • longjef
  • 2016年10月21日 20:23
  • 534

web大文件上传代码

  • 2012年09月16日 20:46
  • 343KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:web文件上传【经典】
举报原因:
原因补充:

(最多只允许输入30个字)