首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2的资料上传和下载

2013-03-27 
Struts2的文件上传和下载1.文件上传upload.jspbodyspan stylecolor:reds:property value#reques

Struts2的文件上传和下载
1.文件上传
  upload.jsp

<body>  <span style="color:red"><s:property value="#request.typeError"/></span>  <span style="color:red"><s:property value="#request.sizeError"/></span>  <span style="color:red"><s:fielderror/></span>  <form action="upload.action" method="post" enctype="multipart/form-data">  文件标题:<input type="text" name="title"/><br/>  选择文件:<input type="file" name="upload"/><br/>  <input type="submit" value="上传"/>  </form>  </body>

   UploadAction.java
package com.cs.struts2.helloworld;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {private String title;private File upload;private String uploadContentType;private String uploadFileName;private String savePath;private String allowTypes;private int fileSize;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public File getUpload() {return upload;}public void setUpload(File upload) {this.upload = upload;}public String getUploadContentType() {return uploadContentType;}public void setUploadContentType(String uploadContentType) {this.uploadContentType = uploadContentType;}public String getUploadFileName() {return uploadFileName;}public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName;}public String getSavePath() {return ServletActionContext.getRequest().getRealPath(savePath);}public void setSavePath(String savePath) {this.savePath = savePath;}@Overridepublic String execute() throws Exception {System.out.println(this.getUploadContentType());/*//验证类型String filterResult = this.filterType(getAllowTypes().split(","));if(filterResult != null) {ActionContext.getContext().put("typeError", "上传的文件类型错误");return filterResult;}    //验证大小String filterSizeResult = this.filterSize(this.getFileSize());if(filterSizeResult != null) {ActionContext.getContext().put("sizeError", "上传的文件大小错误");return filterSizeResult;}*/FileOutputStream fos = new FileOutputStream(this.getSavePath()+"\"+this.getUploadFileName());FileInputStream fis = new FileInputStream(this.getUpload());byte[] buffer = new byte[1024];int len = 0;while((len=fis.read(buffer))>0) {fos.write(buffer,0,len);}return SUCCESS;}/*public String getAllowTypes() {return allowTypes;}public void setAllowTypes(String allowTypes) {this.allowTypes = allowTypes;}//过滤类型public String filterType(String[] types) {String fileType = this.getUploadContentType();for(String type:types) {if(fileType.equals(type)) {return null;}}return INPUT;}public int getFileSize() {return fileSize;}public void setFileSize(int fileSize) {this.fileSize = fileSize;}//过滤大小(1M=1024*1024)public String filterSize(int fileSize) {if(this.getUpload().length()<= fileSize) {return null;}return INPUT;}*/}

    struts.xml
<action name="upload" name="code"> <body> 上传成功! 文件标题:<s:property value="title"/><br/> 文件为: <IMG src="<s:property value="'upload/'+uploadFileName"/>"/><br/>  </body>


2.文件下载

  download.jsp
<body>    <a href="download.action">下载</a>  </body>

   DownloadAction.java
package com.cs.struts2.helloworld;import java.io.InputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownloadAction extends ActionSupport {private String inputPath;public void setInputPath(String inputPath) {this.inputPath = inputPath;}public InputStream getTargetFile() throws Exception{return ServletActionContext.getServletContext()                .getResourceAsStream(inputPath);}@Overridepublic String execute() throws Exception {ActionContext act = ActionContext.getContext();String user = (String)act.getSession().get("user");if(user!=null&&user.equals("cs")) {return SUCCESS;}act.put("tip", "您还没有登陆,请登录后再操作!");return INPUT;}}

stuts.xml
<action name="download" type="stream">    <param name="contentType">image/jpg</param>    <param name="inputName">targetFile</param>    <param name="contentDisposition">filename="cc.jpg"</param>    <param name="bufferSize">102400</param>    </result>    <result name="input">login.jsp</result>    </action>

热点排行