Struts2-文件上传-<s:file>标签使用
2017-07-11 17:44
447 查看
-开发环境:IDE:
Intellij IDEA 2017tomcat:9.0os:archlinuxjdk:1.8.0._131
-
新建FileUploadDemo工程
勾选struts2选项
创建完后工程目录如下:
新建包com.action,在包下新建FileUploadAction.java类,内容如下
编辑struts.xml,内容如下:
WEB-INF 目录下 web.xml 内容如下:
web目录下新建index.jsp和sucess.jsp
index.jsp内容如下:
<%--
Created by IntelliJ IDEA.
User: sky
Date: 7/11/17
Time: 4:18 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<center>
<s:form action="fileupload" enctype="multipart/form-data" method="POST">
<s:file name="uploadFile" label="选择文件"/>
<s:submit/>
</s:form>
</center>
</body>
</html>
sucess.jsp内容如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: sky
Date: 7/11/17
Time: 5:13 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<center>
<h2>
文件名:<s:property value="uploadFileFileName"/><br/>
文件类型:<s:property value="uploadFileContentType"/>
</h2>
</center>
</body>
</html>
调试运行
注意:<s:file>标签里的name属性值务必跟 FileUploadAction类里的 private File xxx一样,例如:<s:file>里的name=pic,<s:file name="pic"> 对应FileUploadAction类里的 private File 必须为pic,其他2个属性 文件名和文件类型 则为picFileName和picContentType,本例中 名为uploadFile。所以 <s:file name="uploadFile">
FileUploadAction类里3个字段名为 uploadFile uploadFileFileName uploadFileContentType。
Intellij IDEA 2017tomcat:9.0os:archlinuxjdk:1.8.0._131
-
新建FileUploadDemo工程
勾选struts2选项
创建完后工程目录如下:
新建包com.action,在包下新建FileUploadAction.java类,内容如下
package com.action; import com.opensymphony.xwork2.ActionSupport; import java.io.File; /** * Created by sky on 7/11/17. */ public class FileUploadAction extends ActionSupport { private File uploadFile;//对应index.jsp里的<s:file>标签里的name的值 不一样无法获取 private String uploadFileFileName; private String uploadFileContentType; public void setUploadFile(File uploadFile) { this.uploadFile = uploadFile; } public void setUploadFileFileName(String uploadFileFileName) { this.uploadFileFileName = uploadFileFileName; } public void setUploadFileContentType(String uploadFileContentType) { this.uploadFileContentType = uploadFileContentType; } public File getUploadFile() { return uploadFile; } public String getUploadFileFileName() { return uploadFileFileName; } public String getUploadFileContentType() { return uploadFileContentType; } @Override public String execute() throws Exception { if(uploadFile!=null){ String dataDir="/home/sky/"; File saveFile=new File(dataDir,uploadFileFileName); uploadFile.renameTo(saveFile); } else { return INPUT; } return SUCCESS; } }
编辑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="Struts2_AJAX_DEMO" namespace="/" extends="struts-default"> <action name="fileupload" class="com.action.FileUploadAction"> <result>/success.jsp</result> <interceptor-ref name="defaultStack"> <param name="fileUpload.allowedTypes">image/jpg,image/jpeg,image/png</param> </interceptor-ref> </action> </package> </struts>
WEB-INF 目录下 web.xml 内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
web目录下新建index.jsp和sucess.jsp
index.jsp内容如下:
<%--
Created by IntelliJ IDEA.
User: sky
Date: 7/11/17
Time: 4:18 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<center>
<s:form action="fileupload" enctype="multipart/form-data" method="POST">
<s:file name="uploadFile" label="选择文件"/>
<s:submit/>
</s:form>
</center>
</body>
</html>
sucess.jsp内容如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: sky
Date: 7/11/17
Time: 5:13 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<center>
<h2>
文件名:<s:property value="uploadFileFileName"/><br/>
文件类型:<s:property value="uploadFileContentType"/>
</h2>
</center>
</body>
</html>
调试运行
注意:<s:file>标签里的name属性值务必跟 FileUploadAction类里的 private File xxx一样,例如:<s:file>里的name=pic,<s:file name="pic"> 对应FileUploadAction类里的 private File 必须为pic,其他2个属性 文件名和文件类型 则为picFileName和picContentType,本例中 名为uploadFile。所以 <s:file name="uploadFile">
FileUploadAction类里3个字段名为 uploadFile uploadFileFileName uploadFileContentType。
相关文章推荐
- struts2 s:file标签使用及文件上传例子
- 使用<input type="file">实现文件上传
- PrimeFaces 4.0 使用 <p:fileDownload> 标签实现文件下载
- 使用input type=file标签进行文件上传时,在安卓手机中的微信浏览器中不能调起相机,但是在苹果手机中的微信浏览器中可以调用相机。解决办法很简单, <input type="file" nam
- Struts 2 <s:file>标签上传GB级别文件或多文件
- Iterator<FileItem>的使用,实现文件(图片)上传,限制图片格式,设置随机文件名
- ajax图片上传及时回显图片,自己总结 + ajaxFileUpload 上传文件 以及 返回值 带 <pre> 标签问题
- ajaxFileUpload 上传文件 以及 返回值 带 <pre> 标签问题
- PrimeFaces 4.0 使用 <p:fileDownload> 标签实现文件下载
- 解决微信内嵌浏览器无法响应<input type='file'>上传文件的思路
- <s:file/>多文件上传
- struts2中日期标签的<sx:datatimepicker>的使用
- ajaxFileUpload 异步上传文件配合Struts2的简单使用
- <input type="file" >判断上传的文件是zip和rar类型
- 将通过<input type="file">上传的txt文件存储在localStorage,提取并构建File对象
- html中,文件上传时使用的<input type="file">的样式自定义
- struts2标签<s:select>的使用
- struts2 <s:property/>标签的使用--输出时间格式转换
- struts2中<s:if>标签的使用
- Spring配置文件<context:property-placeholder>标签使用漫谈