struts2的上传

来源:互联网 发布:淘宝手机店铺打不开 编辑:程序博客网 时间:2024/06/04 19:11

第一种采用Servlet3.0的上传:

UploadServlet.java

package action;import java.io.IOException;import java.io.PrintWriter;import java.util.Collection;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;//注释3.0版本使用@MultipartConfigpublic class UploadServlet extends HttpServlet {/** *  */private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Part  part=request.getPart("file");response.setContentType("text/html;charset=GBK");PrintWriter  out=response.getWriter();String fileName=request.getParameter("name");out.println("上传文件的类型:"+part.getContentType()+"<br/>");out.println("上传文件大小:"+part.getSize()+"<br/>");Collection<String>  headerNames=part.getHeaderNames();for(String headerName:headerNames){out.println(headerName+"---->"+part.getHeader(headerName)+"<br/>");}part.write(getServletContext().getRealPath("/uploadFiles")+"/"+fileName);}     }

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>upload</servlet-name><servlet-class>action.UploadServlet</servlet-class></servlet><servlet-mapping>  <servlet-name>upload</servlet-name>  <url-pattern>/uploadServlet</url-pattern></servlet-mapping></web-app>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    <form action="/Uploads/uploadServlet"  method="post"   enctype="multipart/form-data">    文件名:<input  type="text"  name="name"/>    文件:<input  type="file"  name="file"/><input  type="submit"/>    </form>  </body></html>



第二种采用struts2文件上传

UploadAction.java

package action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {/** *  */private static final long serialVersionUID = 1L;private String title;private File uploadfile;private String uploadfileContentType;private String uploadfileFileName;private String savePath;public String upload()  throws  Exception {FileInputStream fis = new FileInputStream(getUploadfile());        FileOutputStream  fos=new FileOutputStream(getSavePath()+"\\"+getUploadfileFileName());        byte[] buffer=new byte[1024];        int len=0;        while((len=fis.read(buffer))>0){        fos.write(buffer,0,len);        }        fos.close();        fis.close();        return SUCCESS;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public File getUploadfile() {return uploadfile;}public void setUploadfile(File uploadfile) {this.uploadfile = uploadfile;}public String getUploadfileContentType() {return uploadfileContentType;}public void setUploadfileContentType(String uploadfileContentType) {this.uploadfileContentType = uploadfileContentType;}public String getUploadfileFileName() {return uploadfileFileName;}public void setUploadfileFileName(String uploadfileFileName) {this.uploadfileFileName = uploadfileFileName;}public String getSavePath() {return ServletActionContext.getServletContext().getRealPath(savePath);//得到绝对路径}public void setSavePath(String savePath) {this.savePath = savePath;}}


struts.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><package name="hello" namespace="/hello" extends="struts-default"><action name="login" class="action.UploadAction" method="upload"><param name="savePath">/uploadFiles</param><result name="success">/success.jsp</result></action></package></struts>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib  prefix="s" uri="/struts-tags"%>  </head>    <%String path = request.getContextPath();  System.out.println(path);String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";System.out.println(basePath);%>  <body>  上传成功!<br>  文件标题:<s:property  value="title"/><br>  文件为:<img  src="<%=basePath%><s:property  value="'uploadFiles/'+uploadfileFileName"/>"/><br>  </body></html>


index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    <form action="/Upload/hello/login"  method="post"   enctype="multipart/form-data">    文件名:<input  type="text"  name="title"/>    文件:<input  type="file"  name="uploadfile"/><input  type="submit"/>    </form>  </body></html>





0 0
原创粉丝点击