struts2的文件上传
来源:互联网 发布:中南林业科技大学知乎 编辑:程序博客网 时间:2024/06/07 01:37
1.创建upload.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title>Struts 2文件上传</title><link rel="stylesheet" type="text/css" href="Style.css"></head> <body><center><div><%@ include file="top.html" %></div><h3>Struts 2文件上传</h3><hr/><s:form action="myUpload" enctype="multipart/form-data"><s:file name="doc" label="选择上传文件"/><s:submit value="上传"/></s:form></center></body></html>
MyUpload.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 MyUpload extends ActionSupport{/** * */private static final long serialVersionUID = 417923359216619076L;// 封装上传文件域的属性private File doc;// 封装上传文件的类型private String docContentType;// 封装上传文件名private String docFileName;private String path; //接受依赖注入的属性@SuppressWarnings("deprecation")public String getPath() { //返回上传文件的保存位置return ServletActionContext.getRequest().getRealPath(path);}public void setPath(String path) { this.path = path;}public File getDoc() {return doc;}public void setDoc(File doc) {this.doc = doc;}public String getDocContentType() {return docContentType;}public void setDocContentType(String docContentType) {this.docContentType = docContentType;}public String getDocFileName() {return docFileName;}public void setDocFileName(String docFileName) {this.docFileName = docFileName;}@SuppressWarnings("resource")@Overridepublic String execute() throws Exception {docFileName = getFileName(docFileName);FileOutputStream fos = new FileOutputStream(getPath() + "\\" + docFileName);FileInputStream fis = new FileInputStream(doc);byte[] b = new byte[1024];int length = 0;while((length = fis.read(b)) > 0) { //强文件上传的内容保存到服务器端fos.write(b, 0, length); }return SUCCESS;}private String getFileName(String fileName) {int position = fileName.lastIndexOf(".");String extension = fileName.substring(position);return System.currentTimeMillis() + extension;}}
上述的3个属性名称不能随意,如果file的标签不是doc,而是abc,那么Action累中封装的属性是abc,abccontextType和abcFileName.
配置struts,xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.i18n.encoding" value="utf-8" /> <constant name="struts.custom.i18n.resources" value="globalMessages" /> <package name="default" extends="struts-default"> <action name="myUpload" class="action.MyUpload"> <!-- 上传文件拦截,只能上传图片资源 --> <interceptor-ref name="fileUpload"> <!--allowedTypes允许上传的文件类型 --> <param name="allowedTypes"> image/x-png,image/gif,image/bmp,image/pjpeg </param> <!-- 上传文件的大小单位 字节 --> <param name="maximumSize">30000</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> <param name="path">/upload</param> <result name="success">/uploadSuccess.jsp</result> <result name="input">/upload.jsp</result> </action> </package></struts>
建立uploadSuccess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title>文件上传成功</title><link rel="stylesheet" type="text/css" href="Style.css"></head> <body><center><div><%@ include file="top.html" %></div><h3>文件上传成功</h3><hr/><img src="upload/<s:property value="docFileName"/>"/><<br/><s:property value="docFileName"/></center></body></html>
在src目录下配置国际化显示信息
globalMessages_zh_CN.properties
struts.messages.error.content.type.not.allowed=\u6587\u4EF6\u7C7B\u578B\u6709\u8BEF\uFF01\u4E0A\u4F20\u6587\u4EF6\u5FC5\u987B\u4E3A\u56FE\u7247struts.messages.error.file.too.large=\u8BF7\u4F7F\u752830000\u5B57\u8282\u4EE5\u4E0B\u7684\u6587\u4EF6\uFF01
输入http://localhost:8080/Demo11/upload.jsp,选择一个图片。运行成功
0 0
- [Struts2]Struts2的文件上传
- Struts2的文件上传
- Struts2的文件上传
- Struts2的文件上传
- struts2的文件上传
- Struts2 的文件上传
- struts2的文件上传
- Struts2文件的上传
- Struts2文件的上传
- struts2的文件上传
- Struts2文件的上传
- struts2的文件上传
- Struts2的文件上传
- struts2文件的上传
- Struts2的文件上传
- struts2 的文件上传
- Struts2的文件上传
- Struts2的文件上传
- Merge into 语句用法学习
- 7.通用容器
- css边框、背景设置、字体效果、2D、3D变化及css动画
- android 各类demo链接
- 2013百度测试开发实习生技术一面总结
- struts2的文件上传
- 网络问题解决流程
- PAT (Basic Level) Practise (中文)---1002 写出这个数 (20)
- B1025. 反转链表 (25)
- C/C++不常见函数总结
- 计算字符串中含有的某个字符的个数
- 2017.3.18 NOIP训练赛赛后总结
- 最长公共子序列-动态规划-openjudge
- 2017洛谷3月丧病月赛思考记录