struts2实现文件上传下载
来源:互联网 发布:淘宝网的案例分析 编辑:程序博客网 时间:2024/06/13 15:31
文件上传视图 :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>首页</title></head><body> <form action="upload.action" method="post" enctype="multipart/form-data"> 文件:<input type="file" name="logo"/> <input type="submit" value="提交"> </form> 文件下载: ${logoFileName }</a><br> <a>文件大小:${fileSize }</a><br> <a>文件上传时间:${uploadDate }</a><br> <a href="download?logoFileName=${downFileName } ">查看</a></body></html>
首先,表单的enctype设置为multipart/form-data,要使得文件上传拦截器成功处理文件上传,这个就必须设置。然后要注意的是表单的action方法上传和文件上传字段的名称(即logoFileName )。我们需要这些信息来创建action方法和struts配置。
文件下载视图:
<%@ 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>文件下载</title> </head> <body> 文件下载:<a href="download?logoFileName=${downFileName }">${logoFileName }</a><br> <a>文件大小:${fileSize }KB</a><br> <a>文件上传时间:${uploadDate }</a> </body></html>
创建Action类:
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;//上传和下载文件public class UploadAction extends ActionSupport{ private File logo; private String logoFileName; private String logoContentType; private String fileSize; private String uploadDate; public void setFileSize(String fileSize) { this.fileSize = fileSize; } public String getFileSize() { return fileSize; } public void setUploadDate(String uploadDate) { this.uploadDate = uploadDate; } public String getUploadDate() { return uploadDate; } private static String downFileName; public String getDownFileName() { return downFileName; } public void setDownFileName(String downFileName) { this.downFileName = downFileName; } //上传文件 public String uploadFile(){ //String path=ServletActionContext.getRequest().getRealPath("/upload"); String path="E:/upload"; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 uploadDate = df.format(new Date()); System.out.println(uploadDate);// new Date()为获取当前系统时间 fileSize = (logo.length()/1024+1)+"KB"; System.out.println("文件大小:"+fileSize); System.out.println(logoFileName); downFileName=logoFileName; System.out.println(downFileName); try { FileUtils.copyFile(logo, new File(path,logoFileName)); } catch (IOException e) { e.printStackTrace(); } return "success"; } //ָ指定下载路径 public InputStream getInputStream() throws FileNotFoundException{ String path="E:/upload"; System.out.println(path+"/"+downFileName); return new FileInputStream(path+"/"+downFileName); } public String downloadFile(){ return "success"; } public File getLogo() { return logo; } public void setLogo(File logo) { this.logo = logo; } public String getLogoFileName() { return logoFileName; } public void setLogoFileName(String logoFileName) { this.logoFileName = logoFileName; } public String getLogoContentType() { return logoContentType; } public void setLogoContentType(String logoContentType) { this.logoContentType = logoContentType; }}
默认情况下,FileUpload拦截器为你提供三个参数,它们分别按以下方式命名:
1. [文件名参数] - 这是用户已上传的实际文件。在这个例子中它将是“logoFile” 2. [文件名参数]ContentType - 这是上传的文件的内容类型。在这个例子中,它将是“logoContentType” 3. [文件名参数]FileName - 这是上传的文件的名称。在这个例子中,它将是“logoFileName”
struts配置:
<!-- 上传文件 --> <action name="upload" class="uploadAction" method="uploadFile"> <result name="success" >/hello.jsp</result> </action> <!-- 下载文件 --> <action name="download" class="uploadAction" method="downloadFile"> <result type="stream"> <param name="inputName">inputStream</param> <param name="contentDisposition"> attachment;filename=${uploadFileName} </param> </result> </action>
修改上传文件的大小:
<constant name="struts.multipart.maxSize" value="100000000" />
阅读全文
0 0
- struts2实现文件上传下载
- struts2实现文件上传下载
- Struts2实现文件上传下载
- struts2实现文件上传下载
- Struts2实现文件上传下载最终版
- 基于struts2--实现文件上传下载
- 文件上传下载—struts2实现
- plupload+struts2实现文件上传下载
- struts2实现文件的上传下载
- struts2教程--实现文件上传下载
- Struts2实现文件上传下载笔记
- Struts2实现文件上传下载笔记
- Struts2 框架实现多文件上传下载
- Struts2文件上传下载
- Struts2 多文件上传下载
- struts2文件上传下载
- struts2文件上传下载详解
- struts2 文件上传下载
- 跨页面传值的几种简单方式
- Redis 数据结构与实现
- VS2017 Visual Assistant(一键搞定,亲测可用)
- 第八周 项目4-稀疏矩阵的三元组表示的实现及应用
- Python2中input出现的name “xxx” is not defined问题原因及解决办法
- struts2实现文件上传下载
- 论Docker容器中的Nginx配置文件如何读取系统/容器的环境变量
- 洛谷 2587 泡泡堂(贪心)
- go语言实现简易ftp客户端
- Jvm内存划分
- 记录自己对于c/c++的DSA学习历程 1-3
- Struct 与 Class 的初始化赋初值(struct篇)
- WPF控件的一些特殊应用
- The Dominant Color (20)